C wykonanie dodawania przez kilka sekund 
Ostatnio zmodyfikowano 2017-11-02 11:27
nanoant20  | 
» 2017-10-29 20:49:01 Dokładnie TAK, jak napisałeś. Podaje Ci linka  http://www.staff.amu.edu.pl/~ttomek/sop/cwiczenia13.html przeczytaj  Przykład 4  dokładnie Twój przypadek
   | 
 | 
cybernetykpl Temat założony przez niniejszego użytkownika  | 
» 2017-10-31 09:30:03  system("pgrep -c -P &pid_procesu"); 
  Jak zrobić aby ściągnął tutaj pid procesu?
 
   | 
 | 
nanoant20  | 
» 2017-10-31 18:59:17 Proste. #include <stdio.h> #include <stdlib.h> #include <unistd.h>
  int main( void ) {     int return_value;     return_value = system( "pgrep bash" );     return return_value; }
  Oczywiście, zadziała to, pod warunkiem, że będzie uruchomiony Terminal Bash pgrep - x < nazwa procesu >
  Jeżeli chcemy zobaczyć aktualne procesy to uzywamy polecenia "ps" z parametrami. Może to wyglądać tak int pro = system( "ps ax -o pid -o command" );
  return pro;
  można te procesy wyświetlić za pomocą print zamiast return. To jest po prostu przykład. To jest elementarna wiedza z zakresu Unix/Linux  | 
 | 
cybernetykpl Temat założony przez niniejszego użytkownika  | 
» 2017-10-31 19:28:04 Chodzi o to aby zobaczyć liczbę procesów współbieżnych czyli dziłajacych z tym, w którym uruchamiam to polecenie. A może to? system( "ps -aux | wc -l" );
  Czy to możliwe aby tych procesów współbieżnych z działajacą apliakcją (z tym kodem) było aż 180?  | 
 | 
nanoant20  | 
» 2017-10-31 21:27:53 Tak. Jest to możliwe, ze masz uruchomionych 180 demonów jednocześnie. Jak to sprawdzić? Bardzo prosto. 1. odpal code:blocks'a ze swoim programem i uruchom program. 2. Otwórz terminal np. bash'a 3. wklep komendę (polecenie) ps ax -o pid -o command 4. policz jeżeli nie wierzysz :D
  Na dole listy zobaczysz odpalonego code::blocks'a, Twój program, bash'a
  Z tematu zrobił się off-topic
  P.S. W terminalu wykonaj (wpisz) polecenia --> top Górna część pokazuje nam statystyki systemu,  takie jak obciążenie systemu i ilość aktywnych zadań Tasks  Total - wszystkie procesy Running - ilość aktywnych procesów Sleeping - ilość śpiących procesów.  
   | 
 | 
cybernetykpl Temat założony przez niniejszego użytkownika  | 
» 2017-10-31 23:22:53 Jest tylko jedno ale: jak po z++ dam tą linijkę (system("ps -aux | wc -l"); ) to ilość zliczeń w czasie 1 sekundy jest dużo mniejsza niż bez tej linijki. bez system("ps -aux | wc -l"); 189062 a z tą linijką ilość zliczeń z++ w czasie 1 sekundy mam tylko zliczeń z++ 29 które jest prawidłowe #include <stdio.h> #include <signal.h> #include <unistd.h> #include <cstdlib>
  int main( void ) {     long int i = 0;     alarm( 1 );     while( 1 )     {         printf( "%d\n", i );         i++;         printf( "pid %d ppid %d\n ", getpid(), getppid() );         system( "ps -aux | wc -l" );     }          return 0; }
   | 
 | 
nanoant20  | 
» 2017-11-02 11:27:18 Jak i jeden tak i drugi wynik jest prawidłowy. Jeżeli w pętli while masz tylko inkrementacje, to procesor jest mniej obciążony. Jeżeli w pętli while masz inkrementacje, potem wypisujesz printf jakieś wartości i na końcu wywołujesz jeszcze proces system(), który ma jakieś zadanie do wykonania, to wiadomo, że procesor ma więcej pracy, a to wszystko robi w ciągu 1 sekundy. Step by Step loop while 1. printf( "%d\n", i ); <-- wypisuje wartość i 2. i++; <-- podnosi wartość i 3. printf( "pid %d ppid %d\n ", getpid(), getppid() ); <-- wypisuje wartośc pid 4. system( "ps -aux | wc -l" ); <-- wywołuje proces systemowy, który ma zadane do zrobienia (tutaj akurat zlicza wszystkie procesy systemowe) i na nowo od kroku 1 do 4 i to wszystko w ciągu 1 sekundy  | 
 | 
| 1 2 « 3 »  |