Ewelina Napisano Listopad 24, 2006 Zgłoszenie Share Napisano Listopad 24, 2006 Nie wiem jakiej komendy użyć w makefile aby uruchomić program z parametrem np.: $make 3 Nigdzie tego nie moge znaleźć na sieci. A mam już w makefile kompilowanie tego programu. CC=gcc CFLAGS=-Wall -pedantic main: $(CC) $(CFLAGS) fcw.c -o fcw Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Gość amdfanatyk Napisano Listopad 25, 2006 Zgłoszenie Share Napisano Listopad 25, 2006 jak wskazuje nazwa, make nie sluzy do uruchamiania programu. Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Sanczo Napisano Listopad 25, 2006 Zgłoszenie Share Napisano Listopad 25, 2006 Nie wiem jakiej komendy użyć w makefile aby uruchomić program z parametrem np.: $make 3 Nigdzie tego nie moge znaleźć na sieci. A mam już w makefile kompilowanie tego programu. CC=gcc CFLAGS=-Wall -pedantic main: $(CC) $(CFLAGS) fcw.c -o fcw Jesli chcesz ustawic ilosc rownoleglych prac w ilosci 3 to robisz: make -j3 Jesli o to ci chodzilo Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Ewelina Napisano Listopad 26, 2006 Autor Zgłoszenie Share Napisano Listopad 26, 2006 Nie do końca ponieważ mam taki program: #include <stdio.h> #include <stdlib.h> #include <unistd.h> int main(int argc, char *argv[]) { int n; if (argc <= 1){ printf("Podaj argument!\n"); return -1; } n= atoi(argv[1]); if (n >=1) { int i; for (i=0;i<n;i++){ int pid1=fork(); if (pid1==0){ execlp("echo","echo","-n","a\n",NULL); else{//parent int pid2=fork(); if (pid2==0){ waitpid(pid1, NULL, 0); usleep(5); printf("b\n"); return 0; } else{ int pid3=fork(); if (pid3==0){ waitpid(pid1,NULL, 0); waitpid(pid2, NULL, 0); usleep(10); printf("c\n"); return 0; } else{ waitpid(pid1, NULL, 0); waitpid(pid2, NULL, 0); waitpid(pid3, NULL, 0); } } } } } return 0; } I chałałabym go uruchomic za pomoca komendy $make 3 czyli drukowałby to samo trzy razy a jak bym wpisała $make 2 to by drukował dwa razy to samo. I nie wiem jakiej komendy użyć w Makefile żeby pobierał dowolny parametr do tego programu. Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Sanczo Napisano Listopad 26, 2006 Zgłoszenie Share Napisano Listopad 26, 2006 Make to nazedzie pomagajace w kompilowaniu i rozbudowie programow, nie jest to ani wirtualna maszyna ani interpreter. C++ nie jest jezykiem ani skryptowym ani nie uzywa wirtualnej maszyny, widze ze przed dalsza praca zrowno z make jak i C++ przeczytaj sobie jakas dobra ksiazke o programowaniu w C++ (np. "symfonia") a jeszcze wczesniej zajzyj na wikipedie... (moze to cos rozjasni) Jesli chcesz uruchomic skompilowany plik binarny uzyj pliku binarnego i do niego przekaz parametry (argumenty). Nie bede pytac o kolor twoich wlosow ze wzgledow oczywistych... wlacz myslenie to nie boli Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Gość amdfanatyk Napisano Listopad 26, 2006 Zgłoszenie Share Napisano Listopad 26, 2006 Make to nazedzie pomagajace w kompilowaniu i rozbudowie programow, nie jest to ani wirtualna maszyna ani interpreter. C++ nie jest jezykiem ani skryptowym ani nie uzywa wirtualnej maszyny, widze ze przed dalsza praca zrowno z make jak i C++ przeczytaj sobie jakas dobra ksiazke o programowaniu w C++ (np. "symfonia") a jeszcze wczesniej zajzyj na wikipedie... (moze to cos rozjasni) Jesli chcesz uruchomic skompilowany plik binarny uzyj pliku binarnego i do niego przekaz parametry (argumenty). Nie bede pytac o kolor twoich wlosow ze wzgledow oczywistych... wlacz myslenie to nie boli lol Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Andrzej Orkan Napisano Listopad 26, 2006 Zgłoszenie Share Napisano Listopad 26, 2006 Nie słuchaj ich, nie lubią pomagać pięknym niewiastom jak już skompilujesz program poleceniem make to potem dajesz: ./fcw 3 i tak uruchomisz program z parametrem. Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Gość _PaT Napisano Listopad 27, 2006 Zgłoszenie Share Napisano Listopad 27, 2006 Ten program służy (jak mniemam) do pobawienia się forkami. Jeśli tak, nie czytajcie dalszej części posta. Konstrukcja programu jest "hackerska" i jest bardzo nieczytelny (zawiera np. niepotrzebnie powieloną linię waitpid(pid1,...), która powinna znaleźć się w programie wyżej i tylko raz. Założenia idei użycia forków też nie są spełnione. Czemu nie uruchomić procesów potomnych pid2 i pid3 jednocześnie, a potem poczekać aż wszystkie się skończą i dopiero wypisać coś na ekran? W dodatku wg mnie trzy ostatnie linie są użyte zupełnie bez potrzeby. Ten wielowątkowy program tylko przy pid1 w uzasadniony sposób jest wielowątkowy (choć czekanie na zakończenie tego procesu znów jest nieprzejrzyste). Użycie pid2 i pid3 nie jest logiczne, skoro i tak od razu czekamy na zakończenie tych procesów. Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się