FCNTL
Section: Linux Programmer's Manual (2)
Updated: 12 July 1999
Index
Return to Main Contents
À̸§
fcntl - ÆÄÀÏ ±â¼úÀÚ(file descriptor) Á¶ÀÛ
»ç¿ë¹ý
#include <unistd.h>
#include <fcntl.h>
int fcntl(int fd, int cmd);
int fcntl(int fd, int cmd, long arg);
int fcntl(int fd, int cmd, struct flock * lock);
¼³¸í
fcntl
fd¿¡¼
´Ù¾çÇÑ ¿¬»êµé Áß Çϳª¸¦ ¼öÇàÇÑ´Ù. ¹®Á¦ Áß ¿¬»êÀº
cmd¿¡
ÀÇÇØ °áÁ¤µÈ´Ù:
- F_DUPFD
-
argº¸´Ù
Å©°Å³ª µ¿ÀÏÇÑ °¡Àå ³·Àº ¼ýÀÚ°¡ Áö¸íµÈ »ç¿ë°¡´ÉÇÑ ÆÄÀÏ ±â¼úÀÚ¸¦ ã°í, ±×°ÍÀÌ
fdÀÇ
º¹»çº»ÀÌ µÇµµ·Ï Ç϶ó. ÀÌ´Â ¾ö¹ÐÇÏ°Ô ÁöÁ¤µÈ ±â¼úÀÚ¸¦ »ç¿ëÇÏ´Â
dup2(2)¿Í´Â
´Ù¸£´Ù.
¿À·¡µÈ ±×¸®°í »õ·Î¿î ±â¼úÀÚµéÀº ±³´ëÀûÀ¸·Î »ç¿ëµÉ ¼ö ÀÖ´Ù. À̵éÀº Àá±Ý(lock), ÆÄÀÏ À§Ä¡
Æ÷ÀÎÅÍ ±×¸®°í Ç÷¡±×¸¦ °øÀ¯ÇÑ´Ù. ¿¹¸¦ µé¸é, ±â¼úÀÚµéÁß Çϳª¿¡¼ ÆÄÀÏ À§Ä¡°¡
lseek¸¦
»ç¿ëÇؼ ¼öÁ¤µÇ¸é, À§Ä¡´Â ¶ÇÇÑ ´Ù¸¥ °Í¿¡ ´ëÇØ º¯°æµÉ ¼ö ÀÖ´Ù.
µÎ ±â¼úÀÚµéÀº close-on-exec Ç÷¡±×¸¦ °øÀ¯ÇÏÁö ¾Ê´Â´Ù. ±×·¯³ª º¹Á¦º»ÀÇ close-on-exec
Ç÷¡±×´Â ½ÇÇàÁß¿¡´Â Á¾·áµÇÁö ¾Ê´Â off »óÅ°¡ µÈ´Ù.
¼º°øÇϸé, »õ·Î¿î ±â¼úÀÚ´Â ¸®ÅϵȴÙ.
- F_GETFD
-
close-on-exec¸¦ Àд´Ù. ¸¸ÀÏ
FD_CLOEXEC
ºñÆ®°¡ 0À̸é, ÆÄÀÏÀº
exec¸¦
ÅëÇØ ¿¸° »óÅ·Π³²°ÜÁö°í, ±×·¸Áö ¾ÊÀ¸¸é, ´ÝÈù´Ù.
- F_SETFD
-
close-on-exec Ç÷¡±×¸¦
argÀÇ
FD_CLOEXEC
ºñÆ®¿¡ ÀÇÇØ ÁöÁ¤µÈ °ªÀ¸·Î ¼³Á¤ÇÑ´Ù.
- F_GETFL
-
±â¼úÀÚÀÇ Ç÷¡±×¸¦ Àд´Ù. (¸ðµç Ç÷¡±×(
open(2)¿¡
ÀÇÇØ ¼³Á¤µÈ)µéÀº ¸®ÅϵȴÙ.)
- F_SETFL
-
arg
¿¡ ÀÇÇØ ÁöÁ¤µÈ °ªÀ» ±â¼úÀÚÀÇ Ç÷¡±×·Î ¼³Á¤ÇÑ´Ù. ¿ÀÁ÷
O_APPEND, O_NONBLOCK ±×¸®°í O_ASYNC
ÀÌ ¼³Á¤µÉ ¼ö ÀÖ´Ù. ´Ù¸¥ Ç÷¡±×µéÀº ¿µÇâÀ» ¹ÞÁö ¾Ê´Â´Ù.
Ç÷¡±×µéÀº
dup(2), fork(2)
·Î ¸¸µé¾îÁø µ¿ÀÏÇÑ ÆÄÀÏ ±â¼úÀÚÀÇ º¹»çº»µé »çÀÌ¿¡ °øÀ¯µÈ´Ù.
Ç÷¡±× ¹× ±×µéÀÇ Àǹ̴Â
open(2)¿¡
¼³¸íµÇ¾î ÀÖ´Ù.
F_GETLK, F_SETLK ±×¸®°í F_SETLKW
µéÀº ÀÓÀÇÀÇ ÆÄÀÏ Àá±ÝÀ» °ü¸®Çϴµ¥ »ç¿ëµÈ´Ù.
¼¼¹ø° Àμö
lock˼
±¸Á¶Ã¼ flock(ÀÌ È£Ãâ¿¡ ÀÇÇØ °ãÃĽáÁú ¼ö ÀÖ´Â)¿¡ ´ëÇÑ Æ÷ÀÎÅÍÀÌ´Ù.
- F_GETLK
-
Àá±ÝÀ» ¾òÀ» ¼ö ¾øµµ·Ï Á¦¾îÇÏ´Â flock ±¸Á¶·Î ¸®ÅÏÇϰųª, ´Ù¸¥ Àå¾Ö°¡ ¾ø´Ù¸é,
Àá±ÝÀÇ
l_type
Çʵ带
F_UNLCKÀ¸·Î
¼³Á¤ÇÑ´Ù.
- F_SETLK
-
l_typeÀÌ
F_RDLCK
ȤÀº
F_WRLCKÀÏ
¶§, Àá±ÝÀÌ ¼³Á¤µÈ°Å³ª,
l_typeÀÌ
F_UNLCKÀÏ
¶§, Àá±ÝÀº ¼Ò°ÅµÈ´Ù.
´Ù¸¥ ´©±º°¡¿¡ ÀÇÇØ Àá±Ý(lock)ÀÌ ÀÌ·ç¾îÁö¸é, ÀÌ È£ÃâÀº -1À» ¸®ÅÏÇÏ°í,
errno¸¦
EACCES
ȤÀº
EAGAIN·Î
¼³Á¤ÇÑ´Ù.
- F_SETLKW
-
F_SETLK°ú
°°Áö¸¸, ¿¡·¯¸¦ ¸®ÅÏÇÏ´Â ´ë½Å¿¡, Àá±ÝÀÌ Ç®·ÁÁö±â¸¦ ±â´Ù¸°´Ù. ¸¸ÀÏ
fcntlÀÌ
±â´Ù¸®°í ÀÖÀ» ¶§, ½Ã±×³ÎÀÌ ÀâÈ÷¸é,
ÀÌ´Â ÀÎÅÍ·´Æ®µÇ°í, ½Ã±×³Î 󸮱Ⱑ ¸®ÅÏµÈ ÈÄ¿¡, Áï½Ã ¸®ÅÏ°ª -1°ú
errno°¡
EINTR·Î
¼³Á¤µÇ¾î ¸®ÅϵȴÙ.
F_GETOWN, F_SETOWN, F_GETSIG ±×¸®°í F_SETSIG
ÀÔÃâ·Â(I/O) À¯¿ë¼º ½Ã±×³ÎÀ» °ü¸®Çϴµ¥ »ç¿ëµÈ´Ù.
- F_GETOWN
-
ÆÄÀÏ ±â¼úÀÚ
fd»ó¿¡¼
À̺¥Æ®µé¿¡ ´ëÇÑ SIGIO ±×¸®°í SIGURG ½Ã±×³ÎµéÀ»
¼ö½ÅÇÏ´Â ÇÁ·Î¼¼½º ID ¶Ç´Â ÇÁ·Î¼¼½º ±×·ìÀ» ¾ò´Â´Ù.
- F_SETOWN
-
ÆÄÀÏ ±â¼úÀÚ
fd»ó¿¡¼
À̺¥Æ®µé¿¡ ´ëÇÑ SIGIO ±×¸®°í SIGURG ½Ã±×³ÎµéÀ»
¼ö½ÅÇÏ´Â ÇÁ·Î¼¼½º ID ¶Ç´Â ÇÁ·Î¼¼½º ±×·ìÀ» ¼³Á¤ÇÑ´Ù.
ÇÁ·Î¼¼½º ±×·ìµéÀº À½¼ö°ªÀ» »ç¿ëÇÏ¿© ÁöÁ¤µÈ´Ù.
(F_SETSIG
Àº SIGIO ´ë½Å¿¡ ´Ù¸¥ ½Ã±×³ÎÀ» ¸í½ÃÇϴµ¥ »ç¿ëµÉ ¼ö ÀÖ´Ù.
¸¸ÀÏ ÆÄÀÏ ±â¼úÀÚ¿¡¼
ÀÌ Ç÷¡±×¿¡
open(2)
È£ÃâÀ» Á¦°øÇϰųª,
fcntlÀÇ
F_SETFL
¸í·ÉÀ» »ç¿ëÇÏ¿©
O_ASYNC
»óÅ Ç÷¡±×¸¦ ¼³Á¤ÇÏ·Á¸é,
ÀÔ·Â ¶Ç´Â Ãâ·ÂÀÌ ±× ÆÄÀÏ ±â¼úÀÚ¿¡¼ °¡´ÉÇÏ°Ô µÉ¶§¸¶´Ù,
SIGIO ½Ã±×³ÎÀÌ Àü¼ÛµÈ´Ù.
½Ã±×³ÎÀ» ¼ö½ÅÇÒ ÇÁ·Î¼¼½º ȤÀº ÇÁ·Î¼¼½º ±×·ìÀº
fcntl
ÇÔ¼ö¿¡ ´ëÇÑ
F_SETOWN
¸í·ÉÀ» »ç¿ëÇÔÀ¸·Î¼ ¼±ÅÃµÉ ¼ö ÀÖ´Ù.
¸¸ÀÏ ÆÄÀÏ ±â¼úÀÚ°¡ ¼ÒÄÏÀ̸é, ÀÌ´Â ¶ÇÇÑ ´ë¿©ÆøÀ» ¹þ¾î³ µ¥ÀÌÅÍ°¡ ±× ¼ÒÄÏ¿¡ µµÂøÇÒ¶§
Àü´ÞµÇ´Â SIGURG ½Ã±×³ÎÀÇ ¼ö½ÅÀÚ¸¦ ¼±ÅÃÇÑ´Ù. (SIGURG´Â
select(2)´Â
¼ÒÄÏÀ» "¿¹¿ÜÀûÀÎ Á¶°Ç"À¸·Î º¸°íÇÏ´Â ¾î¶² »óȲ¿¡¼µç Àü¼ÛµÈ´Ù.
¸¸ÀÏ ÆÄÀÏ ±â¼úÀÚ°¡ Å͹̳ΠÀåÄ¡¿Í ÀÏÄ¡ÇÑ´Ù¸é, SIGIO ½Ã±×³ÎµéÀº Å͹̳ÎÀÇ
Æ÷±×¶ó¿îµå ÇÁ·Î¼¼½º ±×·ì¿¡ Àü¼ÛµÈ´Ù.
- F_GETSIG
-
ÀÔ·Â ¶Ç´Â Ãâ·ÂÀÌ °¡´ÉÇØÁú ¶§, ½Ã±×³ÎÀÌ Àü¼ÛµÇµµ·Ï ÇÑ´Ù. Á¦·Î °ªÀº SIGIO°¡ Àü¼ÛµÇ¾ú´Ù´Â
°ÍÀ» ÀǹÌÇÑ´Ù. ´Ù¸¥ °ª(SIGIOÀ» Æ÷ÇÔ)Àº ´ë½Å º¸³»Áø ½Ã±×³ÎÀÌ´Ù. ÀÌ·± °æ¿ì, SA_SIGINFO°¡
¼³Ä¡µÇ¾î ÀÖÀ¸¸é, ½Ã±×³Î 󸮱⿡ ´ëÇÑ Ãß°¡ÀûÀÎ Á¤º¸°¡ »ç¿ë°¡´ÉÇÏ´Ù.
- F_SETSIG
-
ÀÔ·Â ¶Ç´Â Ãâ·ÂÀÌ °¡´ÉÇØÁú¶§, ½Ã±×³ÎÀÌ Àü¼ÛµÇµµ·Ï ¼³Á¤ÇÑ´Ù. Á¦·Î °ªÀº µðÆúÆ® SGSIO ½Ã±×³ÎÀ»
Àü¼ÛÇÏ´Â °ÍÀ» ÀǹÌÇÑ´Ù. ´Ù¸¥ °ª(SIGIOÀ» Æ÷ÇÔ)Àº ´ë½Å º¸³»Áø ½Ã±×³ÎÀÌ´Ù. ÀÌ·± °æ¿ì, SA_SIGINFO°¡
¼³Ä¡µÇ¾î ÀÖÀ¸¸é, ½Ã±×³Î 󸮱⿡ ´ëÇÑ Ãß°¡ÀûÀÎ Á¤º¸°¡ »ç¿ë°¡´ÉÇÏ´Ù.
Á¦·Î°¡ ¾Æ´Ñ °ªÀ¸·Î F_SETSIGÀ» »ç¿ëÇÏ°í, ½Ã±×³Î 󸮱⿡ ´ëÇÑ SA_SIGINFO¸¦
¼³Á¤(
sigaction(2)
ÂüÁ¶ÇÒ °Í)ÇÔÀ¸·Î¼,
ÀÔÃâ·Â(I/O À̺¥Æ®¿¡ ´ëÇÑ) ±âŸ Á¤º¸°¡
siginfo_t
³»ÀÇ Ã³¸®±â·Î Àü´ÞµÈ´Ù.
si_code
Çʵå´Â ¼Ò½º°¡ SI_SIGIO¶ó´Â °ÍÀ» °¡¸®Å°°í,
si_fd
Çʵå´Â ÆÄÀÏ ±â¼úÀÚ¿Í À̺¥Æ®¸¦ °ü·Ã½ÃŲ´Ù. ±×·¸Áö ¾ÊÀ¸¸é, ¾î¶² ÆÄÀÏ ±â¼úÀÚµéÀÌ
°è·ùÁßÀΰ¡¿¡ ´ëÇÑ Áö½Ã°¡ ¾ø°í, ¿©·¯ºÐÀº ÀÔÃâ·Â(I/O)¿¡ »ç¿ë°¡´ÉÇÑ ÆÄÀÏ ±â¼úÀÚµéÀÌ
¾î¶² °ÍÀÎÁö¸¦ °áÁ¤Çϱâ À§ÇØ À¯¿ëÇÑ ¸ÞÄ¿´ÏÁò(
(select(2),
poll(2),
read(2)
O_NONBLOCK
)À» »ç¿ëÇØ¾ß ÇÑ´Ù.
POSIX.1b ½Ç½Ã°£ ½Ã±×³Î(°ª >= SIGRTMIN)À» ¼±ÅÃÇÔÀ¸·Î¼, ´ÙÁß ÀÔÃâ·Â À̺¥Æ®µéÀº µ¿ÀÏÇÑ
½Ã±×³Î ³Ñ¹öµéÀ» »ç¿ëÇÏ¿© ´ë±âÇà·Ä(Å¥)¿¡ ³ÖÀ» ¼ö ÀÖ´Ù. (Å¥´Â º¸Åë »ç¿ë°¡´ÉÇÑ ¸Þ¸ð¸®¿¡ ÀÇÁ¸ÀûÀÌ´Ù.)
À§¿Í °°ÀÌ ½Ã±×³Î 󸮱⿡ ´ëÇØ SA_SIGINFO°¡ ¼³Á¤µÇ¸é, ±âŸ Á¤º¸°¡ »ç¿ë°¡´ÉÇÏ´Ù.
ÀÌ·¯ÇÑ ¸ÞÄ¿´ÏÁòÀ» »ç¿ëÇϸé, ÇÁ·Î±×·¥Àº ´ëºÎºÐÀÇ ½Ã°£À»
select(2)
ȤÀº
poll(2)À»
»ç¿ëÇÔ ¾øÀÌ, ºñµ¿±âÀû ÀÔÃâ·Â(I/O)À» ±¸ÇöÇÒ ¼ö ÀÖ´Ù.
O_ASYNC,
F_GETOWN,
F_SETOWN
ÀÇ »ç¿ëÀº BSD ¹× ¸®´ª½º¿¡ ƯÁ¤ÀûÀÌ´Ù.
F_GETSIG
¿Í
F_SETSIG´Â
¸®´ª½º¿¡¸¸ ƯÁ¤ÀûÀÌ´Ù. POSIX´Â ºñ½ÁÇÑ °ÍµéÀ» ÀÌ·ç´Âµ¥ ºñµ¿±âÀû ÀÔÃâ·Â°ú
aio_sigevent
±¸Á¶¸¦ ÀÌ¿ëÇÑ´Ù. ÀÌ·¯ÇÑ °ÍµéÀº ¶ÇÇÑ ¸®´ª½º¿¡¼ GNU C ¶óÀ̺귯¸®(Glibc)ÀÇ ºÎºÐÀ¸·Î¼
»ç¿ëÇÒ ¼ö ÀÖ´Ù.
¹Ýȯ°ª
¼º°øÀûÀΠȣÃâ¿¡ ´ëÇÏ¿©, ¸®ÅÏ °ªÀº ¿¬»ê¿¡ ÀÇÁ¸ÀûÀÌ´Ù.
- F_DUPFD
-
»õ·Î¿î ±â¼úÀÚ
- F_GETFD
-
Ç÷¡±×ÀÇ °ª
- F_GETFL
-
Ç÷¡±×ÀÇ °ª
- F_GETOWN
-
±â¼úÀÚ ¼ÒÀ¯ÀÚÀÇ °ª
- F_GETSIG
-
Àб⠶Ǵ ¾²±â°¡ °¡´ÉÇØÁ³À»¶§ Àü¼ÛµÈ ½Ã±×³ÎÀÇ °ªÀ̳ª, ÀüÅëÀûÀÎ SIGIO ÇàÀ§¿¡ ´ëÇÑ zero.
- ´Ù¸¥ ¸ðµç ¸í·É¾î
-
Zero.
¿¡·¯¸é, -1ÀÌ ¸®Åϵǰí,
errno´Â
ÀûÀýÇÏ°Ô ¼³Á¤µÈ´Ù.
¿¡·¯
- EACCES
-
¿¬»êÀº ´Ù¸¥ ÇÁ·Î¼¼½º¿¡ ÀÇÇÑ Àá±è¿¡ ÀÇÇØ ±ÝÁöµÈ´Ù.
- EAGAIN
-
ÆÄÀÏÀÌ ´Ù¸¥ ÇÁ·Î¼¼½º¿¡ ÀÇÇØ ¸Þ¸ð¸® ¸ÅÇÎÀ̵Ǿú±â ¶§¹®¿¡, ¿¬»êÀº ¹æÇع޴´Ù.
- EBADF
-
fd´Â
¿¸° ÆÄÀÏ ±â¼úÀÚ°¡ ¾Æ´Ï´Ù.
- EDEADLK
-
ÁöÁ¤µÈ
F_SETLKW
¸í·ÉÀº DeadlockÀ» ÃÊ·¡ÇÒ °ÍÀ̶ó´Â °ÍÀÌ °¨ÁöµÇ¾ú´Ù.
- EFAULT
-
lock˼
¿©·¯ºÐÀÌ Á¢±ÙÇÒ ¼ö ÀÖ´Â ÁÖ¼Ò °ø°£ÀÇ ¹Ù±ù¿¡ ÀÖ´Ù.
- EINTR
-
F_SETLKW¿¡
´ëÇÏ¿©, ¸í·ÉÀº ½Ã±×³Î¿¡ ÀÇÇØ ÀÎÅÍ·´Æ®µÇ¾ú´Ù.
F_GETLK°ú F_SETLK¿¡
´ëÇÏ¿©, ¸í·ÉÀº Àá±èÀÌ Ã¼Å©µÇ°Å³ª, ÀÌ·ç¾îÁö±â Àü¿¡ ½Ã±×³Î¿¡ ÀÇÇØ ÀÎÅÍ·´Æ®µÇ¾ú´Ù.
¿ø°Ý ÆÄÀÏÀ» Àá±×´Â(NFS Àá±Ý) °ÍÀº º¸Åë ·ÎÄÿ¡¼ ¹ß»ýÇÑ´Ù.
- EINVAL
-
F_DUPFD¿¡
´ëÇÏ¿©,
arg˼
À½¼ö °ªÀ̰ųª, Çã¿ëµÈ ÃÖ´ë°ªº¸´Ù´Â Å©´Ù.
F_SETSIG¿¡
´ëÇÏ¿©,
arg˼
Çã¿ëµÉ ¼ö ÀÖ´Â ½Ã±×³Î ³Ñ¹ö°¡ ¾Æ´Ï´Ù.
- EMFILE
-
F_DUPFD¿¡
´ëÇÏ¿©, ÇÁ·Î¼¼½º´Â ÀÌ¹Ì ÆÄÀÏ ±â¼úÀÚµéÀÇ ÃÖ´ë ³Ñ¹ö°¡ ¿¸®µµ·Ï ÇÑ´Ù.
- ENOLCK
-
³Ê¹«³ª ¸¹Àº ½Ã±×¸ÕÆ® Àá±ÝÀÌ ¿·È°í, Àá±Ý Å×À̺íÀº ²Ëá°Å³ª, ¿ø°Ý Àá±Ý ÇÁ·ÎÅäÄÝÀÌ
½ÇÆÐÇÏ¿´´Ù. (NFS¸¦ ÅëÇØ Àá±×±â)
- EPERM
-
Ãß°¡ ¼Ó¼ºÀÌ ÁöÁ¤µÇµµ·Ï ÇÏ´Â ÆÄÀÏ¿¡¼
O_APPEND
Ç÷¡±×¸¦ ¼Ò°ÅÇÏ°íÀÚ ÇÔ
ÁÖÀÇ
dup2¿¡
ÀÇÇØ ¸®ÅÏµÈ ¿¡·¯µéÀº
F_DUPFD¿¡
ÀÇÇØ ¸®ÅÏµÈ ¿¡·¯µé°ú´Â ´Ù¸£´Ù.
ȣȯ
SVr4, SVID, POSIX, X/OPEN, BSD 4.3. ¿ÀÁ÷ F_DUPFD,
F_GETFD, F_SETFD, F_GETFL, F_SETFL, F_GETLK, F_SETLK ±×¸®°í F_SETLKWÀÇ ¿¬»êµé¸¸ÀÌ
POSIX.1³»¿¡ ¸í½ÃµÇ¾î ÀÖ´Ù. F_GETOWN °ú F_SETOWN µéÀº SVr4¿¡¼ Áö¿øµÇÁö ¾Ê´Â BSDismÀÌ´Ù.
F_GETSIG °ú F_SETSIG´Â ¸®´ª½º¿¡ ƯÁ¤ÀûÀÌ´Ù. F_GETFL/F_SETFL¿ë Ç÷¡±×µéÀº
open(2)¿¡
ÀÇÇØ Áö¿øµÇ´Â Ç÷¡±×µéÀÌ°í, ½Ã½ºÅÛ¿¡ µû¶ó ´Ù¸£´Ù.
O_APPEND, O_NONBLOCK, O_RDONLY, ±×¸®°í O_RDWRÀº POSIX.1³»¿¡ ¸í½ÃµÇ¾î ÀÖ´Ù.
SVr4Àº ¿©±â¿¡¼ ¹®¼ÈÇÏÁö ¾ÊÀº ¸î°³ÀÇ ´Ù¸¥ ¿É¼Çµé°ú Ç÷¡±×¸¦ Áö¿øÇÑ´Ù.
SVr4´Â Ãß°¡ÀûÀÎ EIO, ENOLINK ±×¸®°í EOVERFLOW ¿¡·¯ Á¶°Çµé¿¡ ´ëÇÑ ¹®¼È¸¦ ÇÑ´Ù.
°ü·Ã Ç׸ñ
dup2(2),
open(2),
socket(2),
flock(2)
¹ø¿ª
ASPLINUX <man@asp-linux.co.kr> 2000³â 7¿ù 29ÀÏ
ÇÑ±Û Manpage ÇÁ·ÎÁ§Æ® (http://man.kldp.org) 2005³â 2¿ù 17ÀÏ
Index
- À̸§
-
- »ç¿ë¹ý
-
- ¼³¸í
-
- ¹Ýȯ°ª
-
- ¿¡·¯
-
- ÁÖÀÇ
-
- ȣȯ
-
- °ü·Ã Ç׸ñ
-
- ¹ø¿ª
-
This document was created by
man2html,
using the manual pages.
Time: 08:02:33 GMT, February 17, 2005