|
Facebook Joinc ±×·ì
Joinc QA »çÀÌÆ®
joinc´Â Firefox¿Í chrome¿¡¼ Å×½ºÆ® Çß½À´Ï´Ù. IE¿¡¼´Â Å×À̺íÀÌ ±úÁö°Å³ª À̹ÌÁö°¡ º¸ÀÌÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ ±¸±Û DocsÀ̹ÌÁöÀÇ °æ¿ì ¿¢¹Úó¸®µÉ ¼ö ÀÖ½À´Ï´Ù.
open(2)ÆÄÀÏÀ̳ª ÀåÄ¡¸¦ ¿°í »ý¼ºÇÑ´Ù.
#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(2) Àº ½Ã½ºÅÛÈ£Ãâ·Î, ÆÄÀÏÀ» ¿°Å³ª »ý¼º ÇÒ¶§ »ç¿ëÇÑ´Ù.
¼º°øÇϸé ÇØ´çÆÄÀÏÀ» Áö½ÃÇÏ´Â int ÇüÀÇ ÆÄÀÏÁö½ÃÀÚ¸¦ µÇµ¹·ÁÁØ´Ù. path_name Àº
»ý¼ºÇϰíÀÚ ÇÏ´Â ÆÄÀÏÀ̸§À» ³ªÅ¸³½´Ù. º¸Åë full path À̸§À» Àû¾îÁÖ¸ç, ´ÜÁö ÆÄÀÏÀ̸§¸¸
ÀûÀ»°æ¿ì¿¡´Â ÇöÀç °æ·Î¿¡ ÆÄÀÏÀÌ »ý¼ºµÈ´Ù.
flag ´Â ÆÄÀÏÀ» ¾î¶°ÇÑ mode ·Î ¿°ÍÀÎÁö¸¦ °áÁ¤Çϱâ À§Çؼ »ç¿ëÇÑ´Ù. "ÀбâÀü¿ë", "¾²±âÀü¿ë",
"Àбâ/¾²±â" ¸ðµå·Î ¿¼ö ÀÖ´Ù. ÀÌµé ¸ðµå ¼±ÅÃÀ» À§Çؼ O_RDONLY, O_WRONLY, O_RDWR ÀÌ Á¸Àç
ÇÑ´Ù.
¶ÇÇÑ ´ÙÀ½Áß ÇϳªÀÌ»óÀÇ mode ¸¦ bitwise ¿¬»ê½Ãų¼öµµ ÀÖ´Ù.
- O_CREAT
¸¸¾à pathname ÆÄÀÏÀÌ Á¸ÀçÇÏÁö ¾ÊÀ»°æ¿ì ÆÄÀÏÀ» »ý¼ºÇÑ´Ù.
- O_EXCL
O_CREAT ¸¦ ÀÌ¿ëÇØ¼ ÆÄÀÏÀ» »ý¼ºÇϰíÀÚ ÇÒ¶§, ÀÌ¹Ì ÆÄÀÏÀÌ Á¸ÀçÇÑ´Ù¸é,
¿¡·¯¸¦ µÇµ¹·ÁÁÖ¸ç ÆÄÀÏÀ» »ý¼ºÇϴµ¥ ½ÇÆÐÇÑ´Ù. ÀÌ·¯ÇÑ Æ¯¼º¶§¹®¿¡ ¶§¶§·Î
Àá±Ý ÆÄÀÏÀ» ¸¸µé±â À§ÇØ »ç¿ëµÇ±âµµ ÇÑ´Ù.
- O_APPEND
ÆÄÀÏÀÌ Ãß°¡¸ðµå·Î ¿¸°´Ù. ÆÄÀÏÀÇ À§Ä¡´Â ÆÄÀÏÀÇ ³¡À̵ȴÙ.
- O_NONBOLOCK, O_NDELAY
ÆÄÀÏÀÌ ºñºÀ¼â ¸ðµå·Î ¿¸°´Ù.
- O_NOFOLLOW
°æ·Î¸íÀÌ ½Éº¼¸¯ ¸µÅ©¶ó¸é, ÆÄÀÏ¿±â¿¡ ½ÇÆÐÇÑ´Ù.
- O_DIRECTORY
°æ·Î¸íÀÌ µð·ºÅ丮°¡ ¾Æ´Ï¶ó¸é ÆÄÀÏ¿±â¿¡ ½ÇÆÐÇÑ´Ù.
- O_SYNC
ÀÔÃâ·Â µ¿±âÈ ¸ðµå·Î ¿¸°´Ù. ¸ðµç write ´Â µ¥ÀÌŸ°¡ ¹°¸®ÀûÀÎ
Çϵå¿þ¾î¿¡ ±â·ÏµÉ¶§±îÁö È£Ãâ ÇÁ·Î¼¼½º¸¦ ºí·Ï½ÃŲ´Ù.
¶ÇÇÑ mode ¸¦ ÀÌ¿ëÇØ¼ ¿¡ ÆÄÀÏÀÇ ±ÇÇÑÀ» ÁöÁ¤ÇØ ÁÙ¼öµµ ÀÖ´Ù.
- 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 À¸·Î ±âŸ »ç¿ëÀÚ ¿¡°Ô Àбâ, ¾²±â, ½ÇÇà ±ÇÇÑÀ» ÁØ´Ù.
- S_IROTH
00004 À¸·Î ±âŸ »ç¿ëÀÚ ¿¡°Ô Àб⠱ÇÇÑÀ» ÁØ´Ù.
- S_IWOTH
00002 À¸·Î ±âŸ »ç¿ëÀÚ ¿¡°Ô ¾²±â ±ÇÇÑÀ» ÁØ´Ù.
- S_IXOTH
00001 À¸·Î ±âŸ »ç¿ëÀÚ ¿¡°Ô ½ÇÇà ±ÇÇÑÀ» ÁØ´Ù.
¿¡·¯°¡ ¹ß»ýÇϸé -1 À» ¹ÝȯÇϸç, ¼º°øÇßÀ»°æ¿ì¿¡´Â »õ·Î¿î ÆÄÀÏ Áö½ÃÀÚ¸¦ ¹ÝȯÇÑ´Ù.
¿¡·¯½Ã¿¡´Â Àû´çÇÑ errno °ªÀÌ ¼³Á¤µÈ´Ù.
- EEXIST
O_CREAT ¿Í O_EXECL ÀÌ °°ÀÌ »ç¿ëµÇ¾úÀ»°æ¿ì ¹ß»ýÇÑ´Ù. ÀÌ¹Ì °æ·ÎÆÄÀÏÀÌ Á¸ÀçÇÒ°æ¿ì
¹ß»ýµÈ´Ù.
- EACCES
ÆÄÀÏ Á¢±ÙÀÌ °ÅºÎµÉ°æ¿ìÀÌ´Ù. ÁÖ·Î ±ÇÇÑ ¹®Á¦ ¶§¹®¿¡ ¹ß»ýÇÑ´Ù.
- ENOENT
°æ·Î¸íÀÇ µð·ºÅ丮°¡ ¾ø°Å³ª, ½Éº¼¸¯ ¸µÅ©°¡ ±úÁ®ÀÖÀ»¶§.
- ENOENT
°æ·Î¸íÀÇ µð·ºÅ丮°¡ ¾ø°Å³ª, ½Éº¼¸¯ ¸µÅ©°¡ ±úÁ®ÀÖÀ»¶§.
- ENODEV
°æ·Î¸íÀÌ ÀåÄ¡ÆÄÀÏÀ» Âü°íÇϰí, ÀÏÄ¡ÇÏ´Â ÀåÄ¡°¡ ¾øÀ»¶§.
- EROFS
°æ·Î¸íÀÌ read-only ÆÄÀϽýºÅÛÀ» ÂüÁ¶Çϸé¼, ¾²±â·Î ¿·Á°í ÇÒ¶§.
- EROFS
°æ·Î¸íÀÌ read-only ÆÄÀϽýºÅÛÀ» ÂüÁ¶Çϸé¼, ¾²±â·Î ¿·Á°í ÇÒ¶§.
- EFAULT
°æ·Î¸íÀÌ Á¢±ÙÇÒ¼ö ¾ø´Â ÁÖ¼Ò°°£À» °¡¸£Å³¶§
- ELOOP
½Éº¼¸¯ ¸µÅ©°¡ ³Ê¹« ¸¹À»¶§.
// /usr/my.temp ÆÄÀÏÀ» Àбâ Àü¿ëÀ¸·Î ¿°íÀÚ ÇÒ¶§
fd = open("/usr/my.temp", O_RDONLY);
...
close(fd);
// ÆÄÀÏÀ» ¾²±â Àü¿ëÀ¸·Î »ý¼ºÇϸç, ÆÄÀÏÀÇ ±ÇÇÑÀº 644 ·Î ÇÑ´Ù.
// ¸¸¾à ÀÌ¹Ì ÆÄÀÏÀÌ Á¸ÀçÇÑ´Ù¸é ¿¡·¯°¡ ¹ß»ýÇÒ°ÍÀÌ´Ù.
fd = open("/usr/my.temp", O_CREAT|O_EXCL|O_WRONLY, S_IRUSR|S_IWUSR|S_IRGRP|S_IROTH);
...
close(fd);
|
|
|