Author Topic: Operacne systemy - domace ulohy  (Read 3462 times)

Ageiris

  • Newbie
  • *
  • Posts: 28
    • View Profile
Operacne systemy - domace ulohy
« on: 23.02.2013, 19:09:50 »
Zdravim, chcel by som sa opytat, ako riesit tuto ulohu:
Quote
Vytvorte program, ktorý bude kopírovať obsah súboru zo štandardného vstupu na
štandardný výstup až po koniec vstupného súboru. Kopírujte po jednom znaku
/bajte
.
Vyskúšajte funkčnosť programu na kopírovaní súborov pomocou presmerovania
štandardného vstupu a
výstupu
.

Nechapem vobec co vlastne chcu odomna. Cital som aj archiv z roku 2012 ale nic konkretne som nenasiel, iba nejake domnienky ze asi ako by to malo byt. Vedel by niekto pomoct?
Najprv som si myslel ze to ma byt nieco take, ze napisem program, v ktorom prekopirujem obsah jedneho suboru do druheho. Potom obsah druheho suboru vypisem na standardny vystup. Vyskusat funkcnost programu som pochopil tak, ze urobim kopiu suboru spustenim nakodeneho programu, vypisem na vystup, a potom pouzijem cp v terminali a vypisem obsah novej kopie suboru. Ak sa budu vypisy rovnat, program funguje spravne. Ale podla mna to ma byt asi inak.
Ak by niekto vedel poradit, budem velmi vdacny. Dakujem

Dickenz

  • Jr. Member
  • **
  • Posts: 71
    • View Profile
Re: Operacne systemy - domace ulohy
« Reply #1 on: 24.02.2013, 16:09:28 »
No ja ulohu cislo 1 vynechavam netusim ani v com sa to piše ...nemam šajnu o tom absolutne ...cele zle to je ...a este ked vidim ze kolko toho treba ta mam dost...

xxx3

  • Hero Member
  • *****
  • Posts: 1010
    • View Profile
Re: Operacne systemy - domace ulohy
« Reply #2 on: 24.02.2013, 16:49:48 »
vsak to spravte podla seba ako si myslite, ajtak je mala sanca, ze vam to bude niekto kontrolovat. A tieto prve ulohy su dost lahke, ked uz toto neviete spravit tak co budete robit dalej ? Stale budu kompikovanejsie ulohy a vzdy je tych uloh takto viac, nikdy nie je len jedna alebo dve.

veteran

  • Hero Member
  • *****
  • Posts: 956
    • View Profile
Re: Operacne systemy - domace ulohy
« Reply #3 on: 24.02.2013, 17:05:45 »
Nechápem, čo také zložité je na prvej úlohe. Však je to mikroprogram - u mňa na 20 riadkov a z toho sú na šiestich deklarácie hlavičkových súborov a päť riadkov je prázdnych kvôli prehľadnosti...

V programe sa treba pokúsiť otvoriť nejaký neexistujúci súbor s príznakom O_CREAT
subor=open("NeexistujuciSubor.txt", O_CREAT);

... a nechať si vypísať errno a perror

Potom treba skúsiť otvoriť nejaký súbor, ktorý v skutočnosti existuje a to isté potom zopakovať bez príznaku O_CREAT.

Výstupy zo všetkých štyroch možností treba skopírovať, pastnúť do txtčka a finito.

Ageiris

  • Newbie
  • *
  • Posts: 28
    • View Profile
Re: Operacne systemy - domace ulohy
« Reply #4 on: 24.02.2013, 18:46:32 »
ulohu 6 uz som poriesil :) nakoniec som pochopil co vlastne chcu odomna.

Teraz ma zaujima uloha 5. Prostrednictvom lseek som sa nastavil na koniec suboru, a dal som precitat 3 bajty.
Navratova hodnota read podla vypisu je 0. Teda dosiel na koniec suboru. Neviem teda, ak je kurzor na konci a dam read, ma to citat dalej prazdne znaky, alebo to ma ist od zaciatku alebo to vrati nulu ze je na konci?

nimrod

  • Newbie
  • *
  • Posts: 13
    • View Profile
Re: Operacne systemy - domace ulohy
« Reply #5 on: 04.03.2013, 05:46:13 »
nestreti ste sa s problemom, ze ked ste nieco zapisali do suboru cez write(), tak vam program zbehol bez problemov, ale po otvoreni subor bol prazdny + permission denied.
zdrojak:

Code: [Select]
#include <fcntl.h>
#include <sys/stat.h>
int main(int argc, char **argv)
{
int des1;
int des2;
des1=open("subor1" , O_CREAT | O_WRONLY , S_IRUSR | S_IWUSR);
//vytvorime / otvorime subor
des2=dup(des1);
//zduplikujeme deskriptor
write(des1,"Toto bude v subore\n",19);
//zapiseme do neho
write(des2,"Toto tam bude tiez\n",19);
//a este raz
close(des1);
//zatvorime prvy deskriptor
close(des2);
//a aj druhy deskriptor
return 0;
}