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:07:00 GMT, March 25, 2004