Edukira joan

Open (sistema-deia)

Wikipedia, Entziklopedia askea

Fitxategia programaren esku jartzeko erabiltzen da sistema-dei hau. Unix eta antzeko sistematan zenbaki bat itzultzen du bestelako sistema-deietan erabilia ahal izateko. Irekitzean fitxategiarekin lotutako baliabideak eskuratzen dira sistema eragiletik (fitxategiaren deskribatzailea esaterako). Programen hasieran erabili ohi da behin fitxategi bakoitzeko.

int open(const char *pathname, int flags);

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

Fitxategi baten izena emanik fitxategi deskribatzaile bat itzultzen du, zenbaki positibo txiki bat. Hau beste sistema-deietan (read(), write(), lseek() etab.) erabiltzen da fitxategia atzitzeko.

Parametroak:

  • pathname: fitxategiaren izena
  • flags: fitxategia nola erabiliko den adierazten dute.
  • mode: fitxategiaren gaineko baimenak.

Emaitza:

  • Erabili gabe dagoen lehen fitxategi deskribatzailea den zenbaki oso bat. Lehenengo irekiera baldin bada orokorrean 3 izango da; 0, 1 eta 2 erreserbatuta baitaude- sarrera estandarra, irteera estandarra eta errore estandarra.
  • -1 errore bat egon bada.

Flagek sarbide modu bat adierazi behar dute: O_RDONLY, O_WRONLY, edo O_RDWR. Soilik irakurri, soilik idatzi edo irakurri/idatzi, hurrenez hurren. Beste hainbat flag daude bestelako ezaugarriak adierazten dituztenak. Aipagarriena, O_CREAT, hau erabiliz fitxategia ez bada existitzen sortu egiten du, beraz sistema-dei hau fitxategia irekitzeko nahiz sortzeko erabiltzen da. Fitxategi bat sortzeko kodearen adibidea:

int fd = open("foo", O_CREAT|O_WRONLY|O_TRUNC, S_IRUSR|S_IWUSR);

  • O_TRUNC: jada dagoen edukia ezabatu.
  • S_IRUSR: erabiltzaileak irakurri dezake.
  • S_IWUSR: erabiltzaileak idatzi dezake.