OPEN
Section: System calls
(2)
Updated: June 3, 1999
Index
Return to Main Contents
À̸§
open, creat - ÆÄÀÏÀ̳ª ÀåÄ¡¸¦ ¿°í »ý¼ºÇÑ´Ù.
»ç¿ë¹ý
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
int open(const char *pathname, int flags);
int open(const char *pathname, int flags, mode_t mode);
int creat(const char *pathname, mode_t mode);
¼³¸í
open()
½Ã½ºÅÛ È£ÃâÀº ÆÄÀÏ µð½ºÅ©¸³ÅÍ¿¡¼ °æ·Î¸í Àüȯ¿¡ »ç¿ëµÈ´Ù. È£ÃâÀÌ ¼º°øÇϸé,
¹ÝȯµÇ´Â ÆÄÀÏ µð½ºÅ©¸³ÅÍ´Â ÇÁ·Î¼¼½º¸¦ À§ÇØ ¿¸®Áö ¾Ê´Â´Ù. ÀÌ È£ÃâÀº ¸ðµç ´Ù¸¥
ÇÁ·Î¼¼½º°¡ °øÀ¯ÇÏÁö ¾Ê´Â »õ·Î¿î ÆÄÀÏÀ» »ý¼ºÇÑ´Ù.
flags
´Â ÆÄÀÏÀ» read-only, write-only, read/write·Î ¿©´Â ¿äûÀ» ÇÏ´Â
O_RDONLY, O_WRONLY or O_RDWR
Áß ÇϳªÀÌ´Ù.
flags
´Â ¶ÇÇÑ ´ÙÀ½Áß ÇϳªÀÌ»óÀ» °¡Áø
bitwise-or'd
ÀÏ·±Áö ¸ð¸¥´Ù:
- O_CREAT
-
ÆÄÀÏÀÌ ¾øÀ¸¸é »ý¼ºµÉ°ÍÀÌ´Ù.
- O_EXCL
-
When used with
O_CREAT
¸¦ »ç¿ëÇÒ ¶§, ÆÄÀÏÀÌ ÀÌ¹Ì Á¸ÀçÇÑ´Ù¸é ¿¡·¯³ª ÆÄÀÏÀ» ¿©´Âµ¥ ½ÇÆÐÇÒ °ÍÀÌ´Ù.
O_EXCL
´Â NFS ÆÄÀÏ ½Ã½ºÅÛÀ» ±ü´Ù. Àá±ÝÆÄÀÏÀ» »ç¿ëÇÏ´Â automicÆÄÀÏ Àá±ÝÀ» ½ÇÇàÇϱâÀ§ÇÑ ¼Ö·ç¼ÇÀº
°°Àº ÆÄÀÏ ½Ã½ºÅÛ¿¡ ƯÁ¤ÆÄÀÏÀ» »ý¼ºÇϱâ À§ÇÔÀÌ´Ù.
- O_NOCTTY
-
°æ·Î¸í
ÀÌ Å͹̳ΠÀåÄ¡¸¦ ¾ð±ÞÇÑ´Ù¸é
tty(4)
¸¦ º»´Ù.
- O_TRUNC
-
ÆÄÀÏÀÌ ÀÌ¹Ì Á¸ÀçÇÑ´Ù¸é ±×°ÍÀº »ý·«µÉ °ÍÀÌ´Ù.
- O_APPEND
-
ÆÄÀÏÀÌ Ãß°¡¸ðµå¿¡ ¿·ÁÀÖ´Ù. °¢°¢
±â·Ï
µÇ±â Àü¿¡ ÆÄÀÏÆ÷ÀÎÅÍ´Â
lseek
°¡ ÀÖ´Â °Íó·³ ÆÄÀÏÀÇ ³¡¿¡ À§Ä¡ÇÑ´Ù.
O_APPEND
´Â Àû¾îµµ Çϳª ÀÌ»óÀÇ ÇÁ·Î¼¼½º°¡ ÆÄÀÏ¿¡ µ¥ÀÌŸ¸¦ Ãß°¡ÇÑ´Ù¸é NFSÆÄÀÏ ½Ã½ºÅÛ»ó¿¡
º¯Áú(correpted)µÈ ÆÄÀÏÀ» À̲ö´Ù. ÀÌ°ÍÀº NFS°¡ ÆÄÀÏ¿¡ Ãß°¡¸¦ Áö¿øÇÏÁö ¾Ê±â¶§¹®ÀÌ´Ù.
±×·¡¼ Ŭ¶óÀ̾ðÆ® Ä¿³ÎÀº ±×°ÍÀ» ½Ã¹Ä·¹ÀÌÆ®ÇÑ´Ù.
- O_NONBLOCK or O_NDELAY
-
ÆÄÀÏÀº ºñºí·Ï ¸ðµå·Î ¿¸°´Ù.
- O_SYNC
-
ÆÄÀÏÀº ÀÔÃâ·Â µ¿±âȸ¦ À§ÇØ ¿¸°´Ù. ÆÄÀÏ µð½ºÅ©¸³ÅÍ °á°ú ¸ðµç
writes
´Â µ¥ÀÌŸ°¡ ¹°¸®ÀûÀ¸·Î Çϵå¿þ¾î·Î ±â·ÏµÉ ¶§±îÁö È£Ãâ ÇÁ·Î¼¼½º¸¦ ºí·ÏÈ ÇÒ °ÍÀÌ´Ù.
¾Æ·¡ÀÇ RESTRICTIONS¸¦ º»´Ù.
- O_NOFOLLOW
-
°æ·Î¸íÀÌ ½Éº¼¸¯ ¸µÅ©¶ó¸é, ÆÄÀÏ¿±â´Â ½ÇÆÐÇÑ´Ù. ÀÌ°ÍÀº ¸®´ª½º ¹öÀü 2.1.126¿¡ Ãß°¡µÈ
freeBSDÈ®ÀåÀÌ´Ù. °æ·Î¸íÀÇ Ãʱ⠱¸¼ºÀÎ ½Éº¼¸¯ ¸µÅ©´Â °è¼Ó µû¸¦°ÍÀÌ´Ù. glibc2.0.100ÀÇ
Çì´õ¿Í ÈÄ¿¡ ÀÌ Ç÷¡±×ÀÇ Á¤ÀǸ¦ Æ÷ÇÔÇÑ´Ù; Ä¿³Î 2.1.126ÀÌÀü¿¡¼ »ç¿ëÇÑ´Ù¸é ¹«½ÃÇÒ °ÍÀÌ´Ù.
- O_DIRECTORY
-
°æ·Î¸íÀÌ µð·ºÅ丮°¡ ¾Æ´Ï¶ó¸é, ÆÄÀÏ¿±â´Â ½ÇÆÐÇÒ °ÍÀÌ´Ù. ÀÌ Ç÷¡±×´Â ¸®´ª½ºÀÇ
Ư¡ÀÌ°í, opendir(3)°¡ FIFO³ª Å×ÀÔÀåÄ¡¿¡ È£ÃâµÈ´Ù¸é ¼ºñ½ºÀÇ °ÅºÎ¹®Á¦¸¦ ÇÇÇϱâ À§ÇØ
¸®´ª½º Ä¿³Î ¹öÀü 2.1.126¿¡ Ãß°¡µÇ¾ú´Ù. ±×·¯³ª opendir´Â ¿ÜºÎ¿¡¼ »ç¿ëµÉ ¼ö ¾ø´Ù.
- O_LARGEFILE
-
´ë¿ë·® ÆÄÀÏ ½Ã½ºÅÛÀ» Áö¿øÇÏ´Â 32ºñÆ® ½Ã½ºÅÛÀº 31ºñÆ®·Î´Â ¿¼ö ¾ø´Â Å©±âÀÇ ÆÄÀÏÀ» »ç¿ëÇÒ ¼ö ÀÖ´Ù.
¸®´ª½º Ä¿³ÎÀº ÀÌ°ÍÀ» ¾ÆÁ÷Àº Áö¿øÇÏÁö ¸øÇÏÁö¸¸, glibc 2.1¿¡¼ Å×½ºÆõǾú´Ù.
¸î¸î ÀÌ·¯ÇÑ ¿É¼Ç Ç÷¡±×´Â ÆÄÀÏÀÌ ¿¸°ÈÄ »ç¿ëÇÏ´Â
fcntl
°¡ ¹Ù²ð ¼ö ÀÖ´Ù.
¸ðµå
´Â »õ·Î¿î ÆÄÀÏÀÌ »ý¼ºµÇ¸é »ç¿ë±ÇÇÑÀ» ÁöÁ¤ÇÑ´Ù. ´ë°³ ÇÁ·Î¼¼½ºÀÇ
umask
·Î ¼öÁ¤ÇÑ´Ù: »ý¼ºµÈ ÆÄÀÏÀÇ ±ÇÇÑÀº
(mode & ~umask)
ÀÌ´Ù.
´ÙÀ½ÀÇ ½Éº¼¸¯ »ó¼ö´Â
¸ðµå
¸¦ À§ÇØ Á¦°øµÈ´Ù:
- S_IRWXU
-
00700 »ç¿ëÀÚ(ÆÄÀÏ ¼ÒÀ¯ÀÚ)´Â Àбâ, ¾²±â, ½ÇÇà±ÇÇÑÀÌ ÀÖ´Ù.
- S_IRUSR (S_IREAD)
-
00400 »ç¿ëÀÚ´Â Àб⠱ÇÇÑÀÌ ÀÖ´Ù.
- S_IWUSR (S_IWRITE)
-
00200 »ç¿ëÀÚ´Â ¾²±â ±ÇÇÑÀÌ ÀÖ´Ù.
- S_IXUSR (S_IEXEC)
-
00100 »ç¿ëÀÚ´Â ½ÇÇà ±ÇÇÑÀÌ ÀÖ´Ù.
- S_IRWXG
-
00070 ±×·ìÀº Àбâ, ¾²±â, ½ÇÇà ±ÇÇÑÀÌ ÀÖ´Ù.
- S_IRGRP
-
00040 ±×·ìÀº Àб⠱ÇÇÑÀÌ ÀÖ´Ù.
- S_IWGRP
-
00020 ±×·ìÀº ¾²±â ±ÇÇÑÀÌ ÀÖ´Ù.
- S_IXGRP
-
00010 ±×·ìÀº ½ÇÇà ±ÇÇÑÀÌ ÀÖ´Ù.
- S_IRWXO
-
00007 ±âŸ»ç¿ëÀÚ´Â Àбâ, ¾²±â, ½ÇÇà ±ÇÇÑÀÌ ÀÖ´Ù.
- S_IROTH
-
00004 ±âŸ»ç¿ëÀÚ´Â Àб⠱ÇÇÑÀÌ ÀÖ´Ù.
- S_IWOTH
-
00002 ±âŸ»ç¿ëÀÚ´Â ¾²±â ±ÇÇÑÀÌ ÀÖ´Ù.
- S_IXOTH
-
00001 ±âŸ»ç¿ëÀÚ´Â ½ÇÇà ±ÇÇÑÀÌ ÀÖ´Ù.
¸ðµå
´Â Ç×»ó
O_CREAT
°¡
Ç÷¡±×
À϶§ ÁöÁ¤µÇ¾î¾ß¸¸ÇÏ°í, ±×¹Û¿¡´Â ¹«½ÃÇÑ´Ù.
»ý¼º
˼
O_CREAT|O_WRONLY|O_TRUNC
¿Í ÀÏÄ¡ÇÏ´Â
Ç÷¡±×
¸¦ °¡Áø
ÆÄÀÏ¿±â
¿Í ÀÏÄ¡ÇÑ´Ù.
¹Ýȯ°ª
¿±â¿Í»ý¼º
Àº ¿¡·¯°¡ ³ª¸é »õ·Î¿î ÆÄÀÏ µð½ºÅ©¸³Å͸¦ ¹ÝȯÇϰųª -1À» ¹ÝȯÇÑ´Ù. ÀÌ·±°æ¿ì
errno
´Â ÀûÀýÈ÷ ¼³Á¤µÈ´Ù.
Note that
¿±â
´Â ÀåÄ¡ÆÄÀÏÀ» ¿¼ø ÀÖÁö¸¸,
»ý¼º
Àº ÀåÄ¡ÆÄÀÏÀ» »ý¼º ÇÒ ¼ö ¾ø´Â °ÍÀ» ÁÖÁöÇÑ´Ù. ´ë½Å
mknod(2)
À» »ç¿ëÇÑ´Ù.
UID ¸ÊÇÎÀÌ °¡´ÉÇÑ NFS ÆÄÀÏ ½Ã½ºÅÛ¿¡¼ ¿±â´Â ÆÄÀÏ µð½ºÅ©¸³Å͸¦ ¹ÝȯÇÏÁö¸¸,
read(2)´Â °ÅºÎµÈ´Ù. ÀÌ°ÍÀº Ŭ¶óÀ̾ðÆ®°¡ ±ÇÇѰ˻翡 ÀÇÇØ ¿±â¸¦ ½ÇÇàÇÏÁö¸¸
UID ¸ÊÇÎÀº ¼¹ö¿¡ ÀÇÇØ ½ÇÇàÇÒ ¼ö Àֱ⠶§¹®ÀÌ´Ù.
¿¡·¯
- EEXIST
-
°æ·Î¸í
ÀÌ ÀÌ¹Ì Á¸ÀçÇÏ°í,
O_CREAT and O_EXCL
°¡ »ç¿ëµÈ´Ù.
- EISDIR
-
°æ·Î¸í
ÀÌ µð·ºÅ丮¸¦ ÂüÁ¶ÇÏ°í, Á¢±ÙÀº º¹ÀâÇÑ ±â·ÏÀ» ¿ä±¸Çß´Ù.
- EACCES
-
¿äûÇÑ ÆÄÀÏ Á¢±ÙÀº °ÅºÎµÇ°Å³ª
°æ·Î¸í
ÀÇ µð·ºÅ丮Áß Çϳª°¡ ½ÇÇà±ÇÇÑÀ» ãÀ» ¼ö ¾ø°Å³ª ÆÄÀÏÀÌ ¾ÆÁ÷ Á¸ÀçÇÏÁö ¾Ê°í ºÎ¸ðµð·ºÅ丮 Á¢±ÙÀÌ °Å
ºÎµÆ´Ù.
- ENAMETOOLONG
-
°æ·Î¸íÀ̳ʹ«±æ´Ù.
- ENOENT
-
A directory component in
°æ·Î¸í
ÀÇ µð·ºÅ丮°¡ ¾ø°Å³ª ½Éº¼¸¯ ¸µÅ©°¡ ±úÁ³´Ù.
- ENOTDIR
-
A component used as a directory in
°æ·Î¸í
¿¡ µð·ºÅ丮·Î½á »ç¿ëµÇ´Â °ÍÀÌ ¾ø´Ù. »ç½Ç µð·ºÅ丮³ª O_DIRECTORY°¡ ÁöÁ¤µÇ¾ú°í
°æ·Î¸í
ÀÌ µð·ºÅ丮°¡ ¾Æ´Ï´Ù.
- ENXIO
-
O_NONBLOCK | O_WRONLY°¡ ¼³Á¤µÇ°í, ÁöÁ¤ÇÑ ÆÄÀÏÀÌ FIFOÀÌ°í ¾î¶°ÇÑ ÇÁ·Î¼¼½ºµµ ÀбâÀ§ÇØ ¿¸° ÆÄÀÏÀÌ ¾ø´Ù.
¶Ç´Â, ÆÄÀÏÀÌ ÀåÄ¡ÆÄÀÏÀÌ°í ÀÏÄ¡ÇÏ´Â ÀåÄ¡°¡ ¾ø´Ù.
- ENODEV
-
°æ·Î¸í
ÀÌ ÀåÄ¡ÆÄÀÏÀ» ÂüÁ¶ÇÏ°í, ÀÏÄ¡ÇÏ´Â ÀåÄ¡°¡ ¾ø´Ù.
- EROFS
-
°æ·Î¸í
ÀÌ read-only ÆÄÀϽýºÅÛÀÇ ÆÄÀÏÀ» ÂüÁ¶ÇÏ°í ¾²±âÁ¢±ÙÀÌ ¿äûµÆ´Ù.
- ETXTBSY
-
°æ·Î¸í
ÀÌ ÇöÀç ½ÇÇàÁßÀÎ ½ÇÇàÀ̹ÌÁöÆÄÀÏÀ» ÂüÁ¶ÇÏ°í ¾²±â±ÇÇÑ Á¢±ÙÀÌ ¿äûµÇ¾ú´Ù.
- EFAULT
-
°æ·Î¸íÀÌ´ç½ÅÀÌÁ¢±ÙÇÒ¼öÀÖ´ÂÁÖ¼Ò°ø°£¹ÛÀ»°¡¸®Å²´Ù.
- ELOOP
-
½Éº¼¸¯¸µÅ©°¡ ³Ê¹« ¸¹´Ù.
°æ·Î¸í
À̳ª O_NOFOLLOW°¡ ÁöÁ¤µÇ¾úÁö¸¸
°æ·Î¸í
ÀÌ ½Éº¼¸¯ ¸µÅ©ÀÌ´Ù.
- ENOSPC
-
°æ·Î¸í
ÀÌ »ý¼ºµÇ¾úÁö¸¸ ÀåÄ¡°¡
°æ·Î¸í
ÀÌ Æ÷ÇÔÇÏ´Â ÀåÄ¡°¡ »õ·Î¿î ÆÄÀÏÀ» À§ÇÑ °ø°£ÀÌ ¾ø´Ù.
- ENOMEM
-
Ä¿³Î ¸Þ¸ð¸®°¡ ºÎÁ·ÇÏ´Ù.
- EMFILE
-
ÇÁ·Î¼¼½º°¡ ÀÌ¹Ì ÆÄÀÏ¿±âÀÇ ÃÖ´ë°ª¿¡ á´Ù.
- ENFILE
-
ÆÄÀÏ¿±âÀÇ ÃÑÇÕÁ¦ÇÑ¿¡ µµ´ÞÇß´Ù.
ȣȯ
SVr4, SVID, POSIX, X/OPEN, BSD 4.3
Á¦ÇÑ
POSIXÀº O_SYNC, O_DSYNC ¿Í O_RSYNC¿¡ ÀÏÄ¡ÇÏ´Â ÀÔÃâ·Â µ¿±âÈÀÇ ¼¼°¡Áö ´Ù¸¥ º¯¼ö¸¦ Á¦°øÇÑ´Ù.
ÇöÀç(2.1.130) ÀÌ·±°ÍµéÀº ¸®´ª½º¿¡¼ ¸ðµÎ °°Àº ¶æÀÌ´Ù.
°ü·Ã Ç׸ñ
read(2),
write(2),
fcntl(2),
close(2),
link(2),
mknod(2),
mount(2),
stat(2),
umask(2),
unlink(2),
socket(2),
fopen(3),
fifo(4)
¿ªÀÚ
ASPLINUX<man@asp-linux.co.kr>, 2000³â 7¿ù 29
Index
- À̸§
-
- »ç¿ë¹ý
-
- ¼³¸í
-
- ¹Ýȯ°ª
-
- ¿¡·¯
-
- ȣȯ
-
- Á¦ÇÑ
-
- °ü·Ã Ç׸ñ
-
- ¿ªÀÚ
-
This document was created by
man2html,
using the manual pages.
Time: 08:06:58 GMT, March 25, 2004