open(2)

Från Wiki.linux.se
Version från den 22 november 2024 kl. 08.08 av Admin (diskussion | bidrag) (Skapade sidan med '= open(2) - Linux manual page = == Namn == '''open''' - Öppnar eller skapar en fil == Bibliotek == Standard C-biblioteket (libc, -lc) == Synopsis == <pre> #include <fcntl.h> #include <sys/stat.h> #include <unistd.h> int open(const char *pathname, int flags, ... →‎mode_t mode: ); </pre> == Beskrivning == Funktionen '''open''' används för att öppna en fil eller skapa en ny fil. Den returnerar en filbeskrivare som kan användas för att läsa, skriva eller utfö...')
(skillnad) ← Äldre version | Nuvarande version (skillnad) | Nyare version → (skillnad)
Hoppa till navigering Hoppa till sök

open(2) - Linux manual page

Namn

open - Öppnar eller skapar en fil

Bibliotek

Standard C-biblioteket (libc, -lc)

Synopsis

#include <fcntl.h>
#include <sys/stat.h>
#include <unistd.h>

int open(const char *pathname, int flags, ... /* mode_t mode */ );

Beskrivning

Funktionen open används för att öppna en fil eller skapa en ny fil. Den returnerar en filbeskrivare som kan användas för att läsa, skriva eller utföra andra operationer på filen.

      1. Parametrar
  • pathname: Sökvägen till filen som ska öppnas eller skapas.
  • flags: Anger öppningsläget och alternativ (kombineras med bitvis OR). Exempel på flaggor:
 - O_RDONLY: Öppna filen för endast läsning.
 - O_WRONLY: Öppna filen för endast skrivning.
 - O_RDWR: Öppna filen för både läsning och skrivning.
 - O_CREAT: Skapa filen om den inte existerar.
 - O_TRUNC: Truncera filen till 0 byte om den redan existerar och öppnas för skrivning.
 - O_APPEND: Skrivningar sker alltid i slutet av filen.
 - O_EXCL: Misslyckas om filen redan existerar (används tillsammans med O_CREAT).
  • mode: Om O_CREAT används, specificerar detta filens behörigheter (t.ex. 0644 för läs/skrivbehörighet för ägare och läsbehörighet för andra).
      1. Returnerar
  • Vid framgång: En icke-negativ filbeskrivare.
  • Vid fel: -1, och errno(3) sätts för att indikera felet.

Fel

open kan returnera följande felkoder i errno(3):

  • EACCES: Behörighet saknas för att öppna filen.
  • EEXIST: Filen existerar redan och O_CREAT | O_EXCL användes.
  • ENOENT: Filen eller en katalog i sökvägen existerar inte.
  • EINVAL: Ogiltiga flaggor angavs.
  • EMFILE: Processen har redan öppnat maximalt antal filer.

För en fullständig lista över felkoder, se manualen.

Exempel

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

int main() {
    const char *filename = "example.txt";
    int fd = open(filename, O_WRONLY | O_CREAT | O_TRUNC, 0644);
    
    if (fd == -1) {
        perror("open");
        return 1;
    }

    write(fd, "Hej, värld!\n", 12);
    close(fd);
    return 0;
}

Standarder

Funktionen open följer POSIX.1-2001, POSIX.1-2008, och är en del av System V Interface Definition (SVID).

Se även

Kolofon

Denna sida är en översättning av manualen för open(2), hämtad från ⟨https://man7.org/linux/man-pages/man2/open.2.html⟩, en del av Linux manualprojektet. För att rapportera fel eller föreslå förbättringar, besök ⟨https://git.kernel.org/pub/scm/docs/man-pages/man-pages.git/tree/CONTRIBUTING⟩.

Sidslut

Orginalhemsidan på Engelska :https://man7.org/linux/man-pages/man2/open.2.html
PHP


Det här är en maskinöversättning av Linux man sidor till svenska. Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på https://www.linux.se/kontaka-linux-se/

Tack till PC Service som har sponsrat Linux.se med webbhotell.