flock

FLOCK(2)                   리ëì¤ íë¡ê·¸ë머 ë©ë´ì¼                   FLOCK(2)



ì´ë¦
       flock - ì´ë ¤ì§ íì¼ì ê¶ê³ (advisory) ì ê¸ì ì ì©íê±°ë ì ê±°íë¤.

ì¬ì©ë²
       #include <sys/file.h>

       int flock(int fd, int operation)

ì¤ëª
       ì´ë ¤ì§ íì¼ì ê¶ê³  ì ê¸ì ì ì©íê±°ë ì ê±°íë¤.  íì¼ì fd ë¡ ì§ì ëë¤.
       ì í¨í ì°ì°ì ë¤ìê³¼ ê°ë¤:


              LOCK_SH   ê³µì (shared) ì ê¸. íê° ì´ìì íë¡ì¸ì¤ë¤ì 주ì´ì§ ìê°ì
                        주ì´ì§ íì¼ì ëí ê³µì  ì ê¸ì í ì ìë¤.

              LOCK_EX   ë°°í(exclusive) ì ê¸. ë¨ì§ íê°ì íë¡ì¸ì¤ë§ì´ 주ì´ì§
                        ìê°ì 주ì´ì§ íì¼ì ëí´ ë°°í ì ê¸ì í ì ìë¤.

              LOCK_UN   ì ê¸ì í¼ë¤.

              LOCK_NB   ì ê¸ì¼ ë ë¸ëíì§ ìëë¤.  ë¤ë¥¸ ì°ì°ê³¼ í¨ê» orì ìí´
                        ì§ì ëë¤.


       í íì¼ì ëìì ê³µì  ì ê¸ê³¼ ë°°í ì ê¸ì í  ì ìë¤.

       íì¼ì íì¼ ê¸°ì ìì ëí´ ì ê¸ì´ ì¼ì´ëë ê²ì´ ìëë¼, inodeì ëí´ ì ê¸ì´ ëë¤.
       ê·¸ëì, dup(2)ì fork(2)ë ì¤ë³µë ì ê¸ì ë§ë¤ì§ ìëë¤.


ë°íê°
       ì±ê³µì, 0ì´ ë¦¬í´ëë¤. ìë¬ì, -1ì´ ë¦¬í´ëë©°, errnoë ì ë¹í ê°ì¼ë¡
       ì¤ì ëë¤.

ìë¬
       EWOULDBLOCK
              íì¼ì ì 겨 ìê³  LOCK_NB íëê·¸ê° ì íëìë¤.

í¸í
       4.4BSD (flock(2)ì 4.2BSDìì ì²ìì¼ë¡ ëíë¬ë¤).

주ì
       flock(2)ì NFSì ìë íì¼ì ì ê¸ì íì§ ìëë¤.  ëì ì fcntl(2)를 ì¬ì©í´ë¼: ì´
       ìì¤í ì½ì ìµì  ë²ì ì´ê³  ìë²ê° ì ê¸ì ì§ìíë¤ë©´ NFSììë ìëíë¤.


       flock(2)ê³¼ fcntl(2) ì ê¸ì ìì±ë íë¡ì¸ì¤ì dup(2)ì ëí´ì ë¤ë¥¸ ì미를
       ê°ëë¤.

ê´ë ¨ í목
       open(2), close(2), dup(2), execve(2), fcntl(2), fork(2).
       /usr/src/linux/Documentation ìì locks.txtì mandatory.txtì´ ìë¤.

ìì
       ì ê°í <skyeyes@soback.kornet.net>, 2000ë 5ì 1ì¼



리ëì¤                          1998ë 12ì 11ì¼                        FLOCK(2)