Sistema eragile: berrikuspenen arteko aldeak

Ezabatutako edukia Gehitutako edukia
340. lerroa:
[[File:S I Kanala Estandarrak.png|thumb|left| 350px| S/I Kanal estandarrak]]
 
== S/I kudeatzeko sistema-deiak ==
 
Honako hauek dira S/I kudeatzeko [[sistema-dei]] erabilienak:
=== open() ===
<code>
int open(const char *pathname, int flags);
 
int open(const char *pathname,int flags, mode_t mode);
</code>
 
[[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.
 
'''Itzuli:'''
* 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 adierzten 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:
 
<code>
int fd = open("foo", O_CREAT|O_WRONLY|O_TRUNC, S_IRUSR|S_IWUSR);
</code>
 
* O_TRUNC: jada dagoen edukia ezabatu.
* S_IRUSR: erabiltzaileak irakurri dezake.
* S_IWUSR: erabiltzaileak idatzi dezake.
 
=== creat() ===
<code>
int creat(const char *pathname, mode_t mode);
</code>
 
Ikusi berri bezala fitxategi bat sortzeko open() erabili daiteke, baina lan hau egiteko creat() sistema deia dago.
 
'''Parametroak'''
* pathname: fitxategiaren izena
* mode: modua
'''Itzuli'''
* Erabili gabe dagoen lehen fitxategi deskribatzailea.
* -1: errore bat egon bada.
 
Aurreko adibidearen baliokidea:
 
<code>
int fd =creat("foo", S_IRUSR|S_IWUSR);
</code>
 
=== close() ===
<code>
int close(int fd);
</code>
 
Fitxategi deskribatzaile bat ixten du, horrela ez dio erreferentziarik egiten fitxategi bati eta berrerabili daiteke.
 
'''Parametroa'''
* fd: fitxategi deskribatzailea
'''Itzuli'''
* 0: fitxategia arazorik gabe itxi da.
* -1: errore bat egon bada.
 
=== read() ===
<code>
ssize_t read(int fd, void *buf, size_t count);
</code>
 
Fitxategi bat ireki ondoren bertatik byteak irakurtzeko erabiltzen den sistema deia da.
 
'''Parametroak'''
* fd : fitxategiaren deskribatzailea, sistemari irakurri beharreko fitxategia zein den adieraziz.
* buf: irakurketaren emaitza gordeko duen bufferra.
* count: bufferraren tamaina.
'''Itzuli'''
* Arrakasta kasuan zenbat byte irakurri diren itzultzen du.
* 0: fitxategi amaierara heltzean.
* -1: errore bat egon bada.
 
Bufferrak baliozkoa den memoria posizio baten erakuslea izan behar du, ezin da espezifikatutako tamaina baino txikiagoa izan overflowagatik. fd open() dei batek itzulitako baliozko fitxategi deskribatzaile bat da, NULL bada errorea emango baitu. cnt parametroak irakurri nahi den byte kopurua adierazten du, eta itzultzen den balioak benetan irakurri den byte kopurua itzultzen du. Zenbaitetan bigarren hau txikiagoa izango da irakurketa ez bada arrakastatsua izan.
 
=== write() ===
<code>
size_t read (int fd, void* buf, size_t cnt);
</code>
 
'''Parametroak'''
* fd : fitxategiaren deskribatzailea, sistemari idatzi beharreko fitxategia zein den adieraziz.
* buf: irakurketaren emaitza gordeko duen bufferra.
* count: bufferraren tamaina.
'''Itzuli'''
* Arrakasta kasuan zenbat byte irakurri diren itzultzen du.
* 0: fitxategi amaierara heltzean.
* -1: errore bat egon bada.
 
{{sakontzeko|Shell (informatika)}}
455 ⟶ 360 lerroa:
 
Interfaze grafikoek lana errazten diete erabiltzaile hasiberriei, erabiltzeko errazak izatea baitute ezaugarri. Hala ere, zenbait desabaintaila dituztenez, GUI bat duten sistema eragile gehienek CLI bat ere eskaintzen dute.
 
 
== Erreferentziak ==