• Perl 多进程文件锁


    fcntl FILEHANDLE,FUNCTION,SCALAR

    Implements the fcntl(2) function. You'll probably have to say

    use Fcntl;

    first to get the correct constant definitions. Argument processing and value returned work just like ioctlbelow. For example:

    use Fcntl;
    fcntl($filehandle, F_GETFL, $packed_return_buffer)
    or
    die "can't fcntl F_GETFL: $!";

    You don't have to check for defined on the return from fcntl. Like ioctl, it maps a 0 return from the system call into "0 but true" in Perl. This string is true in boolean context and 0 in numeric context. It is also exempt from the normal -w warnings on improper numeric conversions.

    Note that fcntl raises an exception if used on a machine that doesn't implement fcntl(2). See the Fcntl module or your fcntl(2) manpage to learn what functions are available on your system.

    Here's an example of setting a filehandle named REMOTE to be non-blocking at the system level. You'll have to negotiate $| on your own, though.

    use Fcntl qw(F_GETFL F_SETFL O_NONBLOCK);
    $flags = fcntl(REMOTE, F_GETFL, 0)
    or
    die "Can't get flags for the socket: $!\n";
    $flags = fcntl(REMOTE, F_SETFL, $flags | O_NONBLOCK)
    or
    die "Can't set flags for the socket: $!\n";

  • 相关阅读:
    P2622 关灯问题II(关灯问题)
    P1140 相似基因
    Choose and Divide UVa 10375
    Disgruntled Judge UVA
    Color Length UVA
    P1052 过河
    P1026 统计单词个数
    Balanced Number HDU
    The SetStack Computer UVA
    Urban Elevations UVA
  • 原文地址:https://www.cnblogs.com/morya/p/1996476.html
Copyright © 2020-2023  润新知