linux man page : open - ÆÄÀÏÀ̳ª ÀåÄ¡¸¦ ¿­°Å³ª »ý¼ºÇÑ´Ù.
ÃÑ ÆäÀÌÁö ¼ö : 3224

Àüü ÇÔ¼ö/¿ë¾î»çÀü
Facebook Joinc ±×·ì   Joinc QA »çÀÌÆ®



joinc´Â Firefox¿Í chrome¿¡¼­ Å×½ºÆ® Çß½À´Ï´Ù. IE¿¡¼­´Â Å×À̺íÀÌ ±úÁö°Å³ª À̹ÌÁö°¡ º¸ÀÌÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ ±¸±Û DocsÀ̹ÌÁöÀÇ °æ¿ì ¿¢¹Úó¸®µÉ ¼ö ÀÖ½À´Ï´Ù.

<a href="/modules/moniwiki/wiki.php/manSearch?google=none&name=open">open</a>(2)

1장. open(2)

차례
1.1절. »ç¿ë¹ý
1.2절. ¼³¸í
1.3절. ¹Ýȯ°ª
1.4절. ¿¡·¯
1.5절. ¿¹Á¦

ÆÄÀÏÀ̳ª ÀåÄ¡¸¦ ¿­°í »ý¼ºÇÑ´Ù.


1.1절. »ç¿ë¹ý

#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);
		


1.2절. ¼³¸í

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.3절. ¹Ýȯ°ª

¿¡·¯°¡ ¹ß»ýÇϸé -1 À» ¹ÝȯÇϸç, ¼º°øÇßÀ»°æ¿ì¿¡´Â »õ·Î¿î ÆÄÀÏ Áö½ÃÀÚ¸¦ ¹ÝȯÇÑ´Ù. ¿¡·¯½Ã¿¡´Â Àû´çÇÑ errno °ªÀÌ ¼³Á¤µÈ´Ù.


1.4절. ¿¡·¯

EEXIST

O_CREAT ¿Í O_EXECL ÀÌ °°ÀÌ »ç¿ëµÇ¾úÀ»°æ¿ì ¹ß»ýÇÑ´Ù. ÀÌ¹Ì °æ·ÎÆÄÀÏÀÌ Á¸ÀçÇÒ°æ¿ì ¹ß»ýµÈ´Ù.

EACCES

ÆÄÀÏ Á¢±ÙÀÌ °ÅºÎµÉ°æ¿ìÀÌ´Ù. ÁÖ·Î ±ÇÇÑ ¹®Á¦ ¶§¹®¿¡ ¹ß»ýÇÑ´Ù.

ENOENT

°æ·Î¸íÀÇ µð·ºÅ丮°¡ ¾ø°Å³ª, ½Éº¼¸¯ ¸µÅ©°¡ ±úÁ®ÀÖÀ»¶§.

ENOENT

°æ·Î¸íÀÇ µð·ºÅ丮°¡ ¾ø°Å³ª, ½Éº¼¸¯ ¸µÅ©°¡ ±úÁ®ÀÖÀ»¶§.

ENODEV

°æ·Î¸íÀÌ ÀåÄ¡ÆÄÀÏÀ» Âü°íÇϰí, ÀÏÄ¡ÇÏ´Â ÀåÄ¡°¡ ¾øÀ»¶§.

EROFS

°æ·Î¸íÀÌ read-only ÆÄÀϽýºÅÛÀ» ÂüÁ¶Çϸ鼭, ¾²±â·Î ¿­·Á°í ÇÒ¶§.

EROFS

°æ·Î¸íÀÌ read-only ÆÄÀϽýºÅÛÀ» ÂüÁ¶Çϸ鼭, ¾²±â·Î ¿­·Á°í ÇÒ¶§.

EFAULT

°æ·Î¸íÀÌ Á¢±ÙÇÒ¼ö ¾ø´Â ÁÖ¼Ò°­°£À» °¡¸£Å³¶§

ELOOP

½Éº¼¸¯ ¸µÅ©°¡ ³Ê¹« ¸¹À»¶§.


1.5절. ¿¹Á¦

// /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);
		


EmailÀ» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù.