Witamy na forum PC Format Zapraszamy do REJESTRACJI


Użytkownicy przeglądający ten wątek: 1 gości

C / Program help

#1
C / Program help
Witam , proszę Was o pomoc gdyż dostałem do napisania niezwykle trudny (przynajmniej dla mnie) program, miedzy 2 a 3 semestrem jest to po prostu dla mnie przepaść a mianowicie :

Zadanie 1.

a) Zmień program fsize tak, aby wypisywał również inne informacje pochodzace z węzła pliku.

b) Dodaj do programu następujące opcje:

--prune NAZWA pomiń zawartość wszystkich katalogów NAZWA
--svn pomiń katalogi zarządzane przez Subversion (.svn)
--cvs pomiń katalogi zarządzane przez CVS (CVS)

Skorzystaj z funkcji getopt_long(3)

Zadanie 2. Użyj funkcji ‚errno’ oraz ‚strerror’ (lub ‚perror’) do wypisywania komunikatów o błędach. Listę możliwych ERRORS znajdziesz na stronach man dla funkcji readdir(3) i opendir(3).

Zadanie 3. Przetestuj działanie całego programu (google test coverage).

poniżej pliki na które trzeba właśnie zmodyfikować

MakeFile:
CC = gcc
CFLAGS = -Wall -g

csources = main.c fsize.c

programs = $(csources:.c=)


fsize : main.o fsize.o

fsize.o : fsize.c fsize.h

main.o : main.c fsize.h


# zob. http://www.gnu.org/softwa...l#Pattern-Rules

%.ps : %.c
iconv -f utf8 -t latin2 $< | a2ps -X iso2 -o $At


.PHONY : clean

all : $(programs)

clean:
rm -f core \#* *~ *.o *.ps $(programs)


fsize.c:
#include <stdio.h>
#include <string.h>

#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <dirent.h>

#include "fsize.h"

#define MAX_PATH 1024

/* zastosuj funkcj� fcn do wszystkich plików w dir */

void dirwalk(char *dir, void(*fcn)(char *));

/* funkcja fsize wypisuje rozmiary plikĂłw;
ale je�li plik jest katalogiem, to fsize
wywo�uje funkcj� dirwalk, przetwarzaj�c�
wszystkie pliki w tym katalogu */

void fsize(char *name) {
struct stat stbuf; /* opis w podr�czniku uşytkownika */

if (stat(name, &stbuf) == -1) {
fprintf(stderr, "fsize: nie mog� znaleź� %s\n", name);
return;
}
if ((stbuf.st_mode & S_IFMT) == S_IFDIR)
dirwalk(name, fsize); /* skorowidz: rekurencja */
printf("%8ld %s\n", stbuf.st_size, name);
}


void dirwalk(char *dir, void(*fcn)(char *)) {
char name[MAX_PATH];
struct dirent *dp;
DIR *dfd;

if ((dfd = opendir(dir)) == NULL) {
fprintf(stderr, "dirwalk: nie mog� otworzy� %s\n", dir);
return;
}
while ((dp = readdir(dfd)) != NULL) {
if (strcmp(dp->d_name, ".") == 0 || strcmp(dp->d_name, "..") == 0)
continue; /* pomi� siebie i przodka */
if (strlen(dir) + strlen(dp->d_name) + 2 > sizeof(name))
fprintf(stderr, "dirwalk: za d�uga nazwa %s/%s\n", dir, dp->d_name);
else {
sprintf(name, "%s/%s", dir, dp->d_name);
(*fcn)(name);
}
}
closedir(dfd);
}

fsize.h:
#ifndef _fsize_h
#define _fsize_h

/* fsize: wypisz rozmiar pliku name */

void fsize(char *name);

#endif

main.c
#include "fsize.h"

/* funkcja main dla funkcji fsize wypisuj�cej rozmiary plików */

int main(int argc, char *argv[])
{
if (argc == 1)
fsize("."); /* domy�lnie: bieş�cy skorowidz */
else
while (--argc > 0)
fsize(*++argv);
return 0;
}

/* zob. teĹź: man stat, opendir, readdir */
 System operacyjny: windows_xp_2003 Przeglądarka: firefox
#2
RE: C / Program help
Napisz jakoś normalniej!
 System operacyjny: windows_xp_2003 Przeglądarka: firefox
#3
RE: C / Program help
tz jak Wesoły taki text dostałem od doktorka Wesoły i wlasnie 1 a zrobilem 1b jakos sie mecze ale cos mi nie idzie Smutek
 System operacyjny: windows_xp_2003 Przeglądarka: firefox
#4
RE: C / Program help
Po pierwsze: Co ten program robi?
Po drugie: Nie tłumaczyli wam tego?
 System operacyjny: windows_xp_2003 Przeglądarka: firefox
#5
RE: C / Program help
1 lekcja 1 godzina to bylo zadane ponoc wszystkiego da sie doszukac w manualu (tylko ze jest tego sporo i po angielsku).

Program wypisuje (konsolka) po wpisaniu ./fsize pliczki i katalogi oraz ich rozmiar oczywiscie mozna dodac jakis argument np ./fsize .. i wypisze pliczki i ich rozmiary w katalogu nadrzędnym. pytanie teraz jak odpalić opcje np prune jak sie napisze ją w main.c


POMOCY !! Smutek
ok mniej wiecej skumalem Wesoły
 System operacyjny: windows_xp_2003 Przeglądarka: firefox
Programy: Polecane / Nowe / Inne




Podobne wątki (C / Program help)
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  C++ program nie chce się skompilować. HELP!!! silver_mike 2 1602 03.10.2009, 16:54
Ostatni post: silver_mike

Skocz do:


Wybrane wątki (C / Program help)
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  Jaki kod pod takie okno formularza w visualbasicu 2010? aktywny27 11 18184 26.11.2017 23:26
Ostatni post: Ajgor
  Jaki projekt na pythona bartek164 0 7679 25.11.2017 19:59
Ostatni post: bartek164
  [VB.NET] przenoszenie danych między formami Pioro 15 18851 19.11.2017 03:48
Ostatni post: broda99
  Java.android.Tworzenie akcji Blendow 0 7558 16.11.2017 23:38
Ostatni post: Blendow
  Proszę o pomoc, cmd! PanKasztan4 1 7035 16.11.2017 22:05
Ostatni post: broda99
  Jaki kod w visual basicu 2010 express? aktywny27 5 8198 07.11.2017 11:01
Ostatni post: Ajgor
  Sprawdzanie wygranej. PixelFullHD 1 7780 03.11.2017 18:38
Ostatni post: Ajgor
  Algorytm Genetyczny C pr1991 3 8100 26.10.2017 11:52
Ostatni post: Szachista
  Program C++ do pola i objętości mistrz18 2 8084 18.10.2017 23:10
Ostatni post: Ajgor
  [C]Część wspólna 2 przedziałów. polak3018 2 7365 13.10.2017 16:43
Ostatni post: ptrick
Question Wyznaczanie maksimum spośród 5 liczb - schemat blokowy mistrz18 5 7733 05.10.2017 19:49
Ostatni post: broda99
  Batch - odczytywanie temperatury karty graficznej i zapisywanie jej do zmiennej ~Anonim 4 7765 03.09.2017 21:41
Ostatni post: ~Anonim
  Kodowanie znaków w .bat kkkkk2105 4 9133 25.08.2017 14:38
Ostatni post: kkkkk2105
  Konwertowanie słów na liczby Java Blendow 5 7562 19.08.2017 21:17
Ostatni post: Szachista
  Kończenie i zamykanie skryptu vbs ottps 1 7018 16.08.2017 23:55
Ostatni post: broda99