Blame doc/examples/lock.lua.html

Packit 437b5e
Packit 437b5e
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
Packit 437b5e
<html>
Packit 437b5e
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
Packit 437b5e
<head>
Packit 437b5e
    <title>luaposix 33.3.0 Reference</title>
Packit 437b5e
    <link rel="stylesheet" href="../ldoc.css" type="text/css" />
Packit 437b5e
</head>
Packit 437b5e
<body>
Packit 437b5e
Packit 437b5e
Packit 437b5e
Packit 437b5e
Packit 437b5e
	
Packit 437b5e
	
<big></big>
Packit 437b5e
	
Packit 437b5e
 
Packit 437b5e
Packit 437b5e
Packit 437b5e
Packit 437b5e
Packit 437b5e
Packit 437b5e
Packit 437b5e
Packit 437b5e
Packit 437b5e

Packit 437b5e

luaposix 33.3.0

Packit 437b5e
Packit 437b5e
    Packit 437b5e
      
  • Index
  • Packit 437b5e
    Packit 437b5e
    Packit 437b5e
    Packit 437b5e
    Packit 437b5e

    Examples

    Packit 437b5e
      Packit 437b5e
        
    • curses.lua
    • Packit 437b5e
        
    • dir.lua
    • Packit 437b5e
        
    • fork.lua
    • Packit 437b5e
        
    • fork2.lua
    • Packit 437b5e
        
    • getopt.lua
    • Packit 437b5e
        
    • glob.lua
    • Packit 437b5e
        
    • limit.lua
    • Packit 437b5e
        
    • lock.lua
    • Packit 437b5e
        
    • netlink-uevent.lua
    • Packit 437b5e
        
    • ping.lua
    • Packit 437b5e
        
    • poll.lua
    • Packit 437b5e
        
    • rt_sched.lua
    • Packit 437b5e
        
    • signal.lua
    • Packit 437b5e
        
    • socket.lua
    • Packit 437b5e
        
    • termios.lua
    • Packit 437b5e
        
    • tree.lua
    • Packit 437b5e
      Packit 437b5e

      Modules

      Packit 437b5e
        Packit 437b5e
          
      • posix
      • Packit 437b5e
          
      • posix.ctype
      • Packit 437b5e
          
      • posix.curses
      • Packit 437b5e
          
      • posix.dirent
      • Packit 437b5e
          
      • posix.errno
      • Packit 437b5e
          
      • posix.fcntl
      • Packit 437b5e
          
      • posix.fnmatch
      • Packit 437b5e
          
      • posix.getopt
      • Packit 437b5e
          
      • posix.glob
      • Packit 437b5e
          
      • posix.grp
      • Packit 437b5e
          
      • posix.libgen
      • Packit 437b5e
          
      • posix.poll
      • Packit 437b5e
          
      • posix.pwd
      • Packit 437b5e
          
      • posix.sched
      • Packit 437b5e
          
      • posix.signal
      • Packit 437b5e
          
      • posix.stdio
      • Packit 437b5e
          
      • posix.stdlib
      • Packit 437b5e
          
      • posix.sys.msg
      • Packit 437b5e
          
      • posix.sys.resource
      • Packit 437b5e
          
      • posix.sys.socket
      • Packit 437b5e
          
      • posix.sys.stat
      • Packit 437b5e
          
      • posix.sys.statvfs
      • Packit 437b5e
          
      • posix.sys.time
      • Packit 437b5e
          
      • posix.sys.times
      • Packit 437b5e
          
      • posix.sys.utsname
      • Packit 437b5e
          
      • posix.sys.wait
      • Packit 437b5e
          
      • posix.syslog
      • Packit 437b5e
          
      • posix.termio
      • Packit 437b5e
          
      • posix.time
      • Packit 437b5e
          
      • posix.unistd
      • Packit 437b5e
          
      • posix.utime
      • Packit 437b5e
        Packit 437b5e

        Classes

        Packit 437b5e
          Packit 437b5e
            
        • posix.curses.chstr
        • Packit 437b5e
            
        • posix.curses.window
        • Packit 437b5e
          Packit 437b5e
          Packit 437b5e
          Packit 437b5e
          Packit 437b5e
          Packit 437b5e
          Packit 437b5e
              

          lock.lua

          Packit 437b5e
          Packit 437b5e
          local p = require "posix"
          Packit 437b5e
          local fd = p.creat("file.txt", "rw-r--r--")
          Packit 437b5e
          Packit 437b5e
          -- Set lock on file
          Packit 437b5e
          local lock = {
          Packit 437b5e
              l_type = p.F_WRLCK;     -- Exclusive lock
          Packit 437b5e
              l_whence = p.SEEK_SET;  -- Relative to beginning of file
          Packit 437b5e
              l_start = 0;            -- Start from 1st byte
          Packit 437b5e
              l_len = 0;              -- Lock whole file
          Packit 437b5e
            }
          Packit 437b5e
          local result = p.fcntl(fd, p.F_SETLK, lock)
          Packit 437b5e
          if result == -1 then
          Packit 437b5e
            error("file locked by another process")
          Packit 437b5e
          end
          Packit 437b5e
          Packit 437b5e
          -- Do something with file while it's locked
          Packit 437b5e
          p.write(fd, "Lorem ipsum\n")
          Packit 437b5e
          Packit 437b5e
          -- Release the lock
          Packit 437b5e
          lock.l_type = p.F_UNLCK
          Packit 437b5e
          p.fcntl(fd, p.F_SETLK, lock)
          Packit 437b5e
          Packit 437b5e
          Packit 437b5e
           
          Packit 437b5e
           
          Packit 437b5e
          Packit 437b5e
          generated by LDoc 1.4.3
          Packit 437b5e
          Last updated 2015-03-01 09:06:02 
          Packit 437b5e
           
          Packit 437b5e
           
          Packit 437b5e
          </body>
          Packit 437b5e
          </html>