8. praktikum - Faili atribuudid (itv0020): erinevus redaktsioonide vahel

Allikas: Lambda
Mine navigeerimisribale Mine otsikasti
Resümee puudub
Resümee puudub
 
(ei näidata sama kasutaja 2 vahepealset redaktsiooni)
10. rida: 10. rida:
Näidatavad atribuudid:
Näidatavad atribuudid:
* Faili suurus
* Faili suurus
* Kas omanik saab lugeda
* Kas omanik saab lugeda?
* Kas omanik saab kirjutada
* Kas omanik saab kirjutada?
* Kas omanik saab käivitada
* Kas omanik saab käivitada?




== Vihjeid ==
== Vihjeid ==


* Faili eksisteerimist saate kontrollida funktsiooniga [http://linux.die.net/man/2/stat access()].
* Faili eksisteerimist saate kontrollida funktsiooniga [http://linux.die.net/man/2/access access()].
* Faili atribuudid saate [http://linux.die.net/man/2/stat man stat()] funktsiooniga.
* Faili atribuudid saate [http://linux.die.net/man/2/stat man stat()] funktsiooniga.
* Fail on peidetud siis, kui failinimi algab punktiga (Nt: .peidus).
* Fail on peidetud siis, kui failinimi algab punktiga (Nt: .peidus).
* Kataloogi jaoks on [http://linux.die.net/man/3/opendir opendir()] ja [http://linux.die.net/man/3/readdir readdir()] funktsioonid.
* Kataloogi jaoks on [http://linux.die.net/man/3/opendir opendir()] ja [http://linux.die.net/man/3/readdir readdir()] funktsioonid.
=== Filosoofiline kõrvalepõige struct stat andmetüüpide teemal ===
Kui märkate, et struktuuris stat on faili suuruse andmevälja tüüp off_t , tekib selle väljatrükkimisel väike hämmeldus. Millist %-ga algavat asendusmärki peaks printf() puhul kasutama?
Kuna off_t võib sõltuda süsteemist, on ilmselt üks mõistlikumaid viise trükkida välja long int tüüpi muutuja ja off_t siis enne vastavalt long tüüpi konverteerida (''cast'').

Viimane redaktsioon: 19. oktoober 2010, kell 17:03

Süsteemprogrammeerimine keeles C

Praktikumid

Laborid

Selles praktikumis harjutame standardses teegis olevate struktuuride kasutamist ja loeme faili infot

Ülesanne

Kirjutage programm, mis võtab argumendiks ühe failinime ja püüab näidata välja selle faili atribuudid: sisuliselt kutsub välja funktsiooni stat().

Kui tegemist on kataloogiga, näitab programm selles kataloogis olevate failide nimekirja (ja ei näita peidetud faile). Kui failinime ei antud, näidake parajasti avatud kataloogi sisu.

Näidatavad atribuudid:

  • Faili suurus
  • Kas omanik saab lugeda?
  • Kas omanik saab kirjutada?
  • Kas omanik saab käivitada?


Vihjeid

  • Faili eksisteerimist saate kontrollida funktsiooniga access().
  • Faili atribuudid saate man stat() funktsiooniga.
  • Fail on peidetud siis, kui failinimi algab punktiga (Nt: .peidus).
  • Kataloogi jaoks on opendir() ja readdir() funktsioonid.

Filosoofiline kõrvalepõige struct stat andmetüüpide teemal

Kui märkate, et struktuuris stat on faili suuruse andmevälja tüüp off_t , tekib selle väljatrükkimisel väike hämmeldus. Millist %-ga algavat asendusmärki peaks printf() puhul kasutama?

Kuna off_t võib sõltuda süsteemist, on ilmselt üks mõistlikumaid viise trükkida välja long int tüüpi muutuja ja off_t siis enne vastavalt long tüüpi konverteerida (cast).