Difference between revisions of "LU-LKP-B10:MD3"

From DiLab
Jump to: navigation, search
(Vērtējums)
Line 1: Line 1:
{{TocRight}}
{{TocRight}}
=MD=
=MD3=


===Mērķi===
===Mērķi===

* Direktorijas koka rekusrīva apstaigāšana
* Direktorijas koka rekursīva apstaigāšana
* Failu parametru nolasīšana un analīze
* Failu parametru nolasīšana un analīze
* Darbs ar stat, opendir,readdir,closedir
* Darbs ar stat(), opendir(),readdir(),closedir()
* Hash tabulas pielietojumi
* Hash tabulas pielietojumi
* MD5 pielietojums



===Uzdevums===
===Uzdevums===

Uzrakstīt programmu '''md3''', kas apstaigā direktoriju koku un atrod tos failus kas ir duplikāti, respektīvi, atrodami vairākos eksemplāros.
Uzrakstīt programmu '''md3''', kas apstaigā direktoriju koku un atrod tos failus kas ir duplikāti, respektīvi, atrodami vairākos eksemplāros.
Faili tiek uzskatīti par vienādiem ja tiem ir vienāds izmērs un faila vārds.
Faili tiek uzskatīti par vienādiem ja tiem ir vienāds izmērs un faila vārds.
* Saites (links) jāignorē. Divas saites, vai fails un saite uz to nav jāizdrukā.
* Saites (links) jāignorē. Divas saites, vai fails un saite uz to, nav jāsalīdzina.


Vārds un izmērs jāpārbauda vienmēr. Papildus pārbaudes nosaka parametri:
Vārds un izmērs jāpārbauda vienmēr. Papildus pārbaudes nosaka parametri:
Line 39: Line 43:


Uzdevums tiks vērtēts sekojoši:
Uzdevums tiks vērtēts sekojoši:
# 60% - Korekta programmas darbība salīdzinot tikai failu vārdus un izmērus
# 80% - xx
# 10% - -d datuma salīdzināšanas opcijas realizācija
# 20% - xx
# 20% - -md5 opcijas realizācija
# 10% - --help realizācija


===Piemēri===
===Piemēri===


Darbinām md3, salīdzinām arī datumus, izvadam rezultātus log failā.

md3 -d > log


===Derīga informācija===
===Derīga informācija===


* [http://linux.die.net/man/2/stat stat()]
* xx
* [http://linux.die.net/man/3/opendir opendir()], [http://linux.die.net/man/3/readdir readdir()], [http://linux.die.net/man/3/closedir closedir()]
* [http://xml-lit.sourceforge.net/doc/indexs05.html Hash funkcijas un tabulas piemērs]
* [http://userpages.umbc.edu/~mabzug1/cs/md5/md5.html MD5]


* Ieteikums: izstrādājiet programmatūru pakāpeniski. Piemēram, vispirms ielasiet un izdrukājiet datus. Tad pievienojiet datu analīzi un reģistrēšanu savās datu struktūrās. Tad pievienojiet datu analīzi lai tos sakārtotu izdrukai. Testējiet vispirms uz pareiziem datiem. tad uz kļūdainiem datiem.
* Ieteikums: izstrādājiet programmatūru pakāpeniski. Piemēram, vispirms ielasiet un izdrukājiet datus. Tad pievienojiet datu analīzi un reģistrēšanu savās datu struktūrās. Tad pievienojiet datu analīzi lai tos sakārtotu izdrukai. Testējiet vispirms uz pareiziem datiem. tad uz kļūdainiem datiem.

Revision as of 18:35, 5 October 2010

MD3

Mērķi

  • Direktorijas koka rekursīva apstaigāšana
  • Failu parametru nolasīšana un analīze
  • Darbs ar stat(), opendir(),readdir(),closedir()
  • Hash tabulas pielietojumi
  • MD5 pielietojums


Uzdevums

Uzrakstīt programmu md3, kas apstaigā direktoriju koku un atrod tos failus kas ir duplikāti, respektīvi, atrodami vairākos eksemplāros. Faili tiek uzskatīti par vienādiem ja tiem ir vienāds izmērs un faila vārds.

  • Saites (links) jāignorē. Divas saites, vai fails un saite uz to, nav jāsalīdzina.

Vārds un izmērs jāpārbauda vienmēr. Papildus pārbaudes nosaka parametri:

  • md3 -d pārbauda arī datumu sakritību
  • md3 -md5 aprēķina un salīdzina md5
  • md3 --help izvada palīga tekstu par parametriem


Izdrukas formāts:

=== date size filename1 [MD5]
path1/filename1 
path2/filename1 
...

=== date size filename2 [MD5]
path1/filename2 
path2/filename2 
...

Jāiesniedz

  • Jāiesniedz C programmas pirmkods un Makefile.
  • Visi iesniedzamie faili jāsapako arhīvā LKP_MD3_vards_uzvards.tgz
  • Arhīva fails sūtāms pa epastu piekabē, ar sekojošu "Subject:" LKP MD3 vards uzvards

Vērtējums

Uzdevums tiks vērtēts sekojoši:

  1. 60% - Korekta programmas darbība salīdzinot tikai failu vārdus un izmērus
  2. 10% - -d datuma salīdzināšanas opcijas realizācija
  3. 20% - -md5 opcijas realizācija
  4. 10% - --help realizācija

Piemēri

Darbinām md3, salīdzinām arī datumus, izvadam rezultātus log failā.

md3 -d > log

Derīga informācija

  • Ieteikums: izstrādājiet programmatūru pakāpeniski. Piemēram, vispirms ielasiet un izdrukājiet datus. Tad pievienojiet datu analīzi un reģistrēšanu savās datu struktūrās. Tad pievienojiet datu analīzi lai tos sakārtotu izdrukai. Testējiet vispirms uz pareiziem datiem. tad uz kļūdainiem datiem.

J&A (jautājumi un atbildes)

J: Uzdevums pārāk grūts, vai var pagarināt termiņu?

A: Noteiktais termiņš paliek spēkā. Šis ir pirmais un vieglākais uzdevums kursā. Iesaku risināt savlaicīgi, lai pietiek laika neparedzētu problēmu risināšanai.


Uz LKP kursa sākuma lapu.