fcntl(2): Skillnad mellan sidversioner
Admin (diskussion | bidrag) |
Admin (diskussion | bidrag) |
||
Rad 13: | Rad 13: | ||
== Beskrivning == | == Beskrivning == | ||
[[fcntl()]] utför olika operationer på filbeskrivaren ''fd'', beroende på värdet av ''cmd'' och eventuella ytterligare argument. | |||
=== Kommandon === | === Kommandon === |
Versionen från 22 november 2024 kl. 08.21
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.