fcntl(2)

Från Wiki.linux.se
Hoppa till navigering Hoppa till sök

fcntl(2) - Manipulering av filbeskrivare

Namn

fcntl - Utför olika operationer på filbeskrivare

Synopsis

#include <fcntl.h>
#include <unistd.h>

int fcntl(int fd, int cmd, ... /* arg */ );

Beskrivning

    • fcntl()** utför olika operationer på filbeskrivaren fd, beroende på värdet av cmd och eventuella ytterligare argument.

Kommandon

Här är en lista över några vanliga kommandon som kan användas med **fcntl()**:

  • F_DUPFD

Returnerar en ny filbeskrivare som är en dubblett av fd. Den nya filbeskrivaren använder det lägsta lediga talet som är minst lika med det argument som skickas.

  • F_GETFD

Returnerar filbeskrivarens flaggor (FD_CLOEXEC, etc.).

  • F_SETFD

Ställer in filbeskrivarens flaggor till det värde som anges i arg.

  • F_GETFL

Returnerar filstatusflaggor (O_RDONLY, O_WRONLY, O_RDWR, O_APPEND, etc.).

  • F_SETFL

Ändrar filstatusflaggor, t.ex. aktivering av O_APPEND eller O_NONBLOCK.

  • F_GETLK, F_SETLK, och F_SETLKW

Hanterar rådgivande lås för filer.

Rådgivande lås

Med hjälp av kommandona F_GETLK, F_SETLK, och F_SETLKW kan rådgivande lås sättas på delar av en fil. Detta används för att säkerställa att flera processer inte samtidigt skriver till samma filområde.

Se avsnittet om Rådgivande lås för detaljerade exempel och för en diskussion om potentiella risker och begränsningar.

Återvändningsvärden

Vid framgång returnerar **fcntl()** ett värde som är beroende av det specifika kommandot. Vid fel returneras -1 och errno sätts för att indikera felet.

Fel

Vanliga fel inkluderar:

  • EBADF
 fd är inte en giltig filbeskrivare.
  • EACCES
 Åtkomst nekas till den begärda operationen.
  • EINVAL
 cmd är ogiltigt, eller argumenten till kommandot är felaktiga.
  • EAGAIN
 Ett rådgivande lås kunde inte uppnås eftersom det redan används.

Se även

Författare

Denna manualsida skrevs av Michael Kerrisk.

Källor

Den officiella manualen finns på man7.org.