Difference between revisions of "LU-LSP-b13:L02"

From DiLab
Jump to: navigation, search
(New page: Realizēt efektīvu failu kopēšanas programmu. * Brīva izvēle, kādas funkcijas vai sistēmas izsaukumus lietot * Ja lieto C bibliotēkas iebūvēto buferēšanu, bufera izmērs jāuzs...)
 
(Praktiskais darbs #2)
 
(6 intermediate revisions by 2 users not shown)
Line 1: Line 1:
== Praktiskais darbs #2 ==

Realizēt efektīvu failu kopēšanas programmu.
Realizēt efektīvu failu kopēšanas programmu.
* Brīva izvēle, kādas funkcijas vai sistēmas izsaukumus lietot
* Brīva izvēle, kādas funkcijas vai sistēmas izsaukumus lietot
Line 7: Line 9:
Ja izejas fails eksistē, tad jāuzprasa apstiprinājums, - vai tiešām to pārrakstīt?
Ja izejas fails eksistē, tad jāuzprasa apstiprinājums, - vai tiešām to pārrakstīt?


Veiksmīgas, pilnas faila nokopēšanas gadījumā programmai jābeidzas ar izejas kodu 0, pretējā gadījumā ar: kodu -1, piemēram, ja kāds no failiem nav atrasts, lasīšana neizdevās, rakstīšana neizdevās u.c. problēmas.
Veiksmīgas, pilnas faila nokopēšanas gadījumā programmai jābeidzas ar izejas kodu 0, pretējā gadījumā ar: kodu -1, piemēram, ja ieejas fails nav atrasts, lasīšana neizdevās, izejas failu nevar izveidot vai nevar atvērt rakstīšanas režīmā, rakstīšana tajā neizdevās u.c. problēmas.


Viens no efektivitātes priekšnosacījumiem: optimāls (vai nosacīti tuvu optimālajam) bufera izmērs. Tomēr vērtējumu izliekot efektivitāte tiks pārbaudīta empīriski: izmērot, cik daudz laika vajadzīgs liela faila nokopēšanai.
Viens no efektivitātes priekšnosacījumiem: optimāls (vai nosacīti tuvu optimālajam) bufera izmērs. Tomēr vērtējumu izliekot efektivitāte tiks pārbaudīta empīriski: izmērot, cik daudz laika vajadzīgs liela faila nokopēšanai.


60% par korektumu, 40% par ātrdarbību (vērtē tikai tad, ja ir korekta).
60% par korektumu, 40% par ātrdarbību (vērtē tikai tad, ja ir korekta).


'''Jāiesniedz''':
* C programmas pirmkods. Faila nosaukums: LSP_PD2_vards_uzvards.c
* Līdz PD beigām iesūtīt kas ir '''e-studijas.lu.lv''.




Line 17: Line 24:
<pre>
<pre>
all:
all:
gcc main.c -o pd3
gcc main.c -o pd2


test:
test:
./pd3 test.in test.out
./pd2 test.in test.out


gentest:
gentest:
Line 27: Line 34:


clean:
clean:
rm -f pd3 test.out
rm -f pd2 test.out
</pre>
</pre>

Latest revision as of 17:37, 26 December 2017

Praktiskais darbs #2

Realizēt efektīvu failu kopēšanas programmu.

  • Brīva izvēle, kādas funkcijas vai sistēmas izsaukumus lietot
  • Ja lieto C bibliotēkas iebūvēto buferēšanu, bufera izmērs jāuzstāda atšķirīgs no noklusētā!

Programma pieņem divus argumentus: ieejas un izejas failu vārdi

Ja izejas fails eksistē, tad jāuzprasa apstiprinājums, - vai tiešām to pārrakstīt?

Veiksmīgas, pilnas faila nokopēšanas gadījumā programmai jābeidzas ar izejas kodu 0, pretējā gadījumā ar: kodu -1, piemēram, ja ieejas fails nav atrasts, lasīšana neizdevās, izejas failu nevar izveidot vai nevar atvērt rakstīšanas režīmā, rakstīšana tajā neizdevās u.c. problēmas.

Viens no efektivitātes priekšnosacījumiem: optimāls (vai nosacīti tuvu optimālajam) bufera izmērs. Tomēr vērtējumu izliekot efektivitāte tiks pārbaudīta empīriski: izmērot, cik daudz laika vajadzīgs liela faila nokopēšanai.

60% par korektumu, 40% par ātrdarbību (vērtē tikai tad, ja ir korekta).


Jāiesniedz:

  • C programmas pirmkods. Faila nosaukums: LSP_PD2_vards_uzvards.c
  • Līdz PD beigām iesūtīt kas ir 'e-studijas.lu.lv.


Makefile piemērs šim PD:

all:
	gcc main.c -o pd2

test:
	./pd2 test.in test.out

gentest:
	dd if=/dev/urandom of=test.in count=2048
	dd if=/dev/urandom of=test-big.in count=204800

clean:
	rm -f pd2 test.out