Portál AbcLinuxu, 26. dubna 2024 08:17


Dotaz: C++ - použitie get/setpriority

25.11.2010 08:04 PeterS. | skóre: 10
C++ - použitie get/setpriority
Přečteno: 253×
Odpovědět | Admin

Ahoj
chcel by som v rámci c++ programu meniť a zistovať prioritu procesu.

Z manuálu:


int getpriority(int which, id_t who);

The which argument may be one of the following values: PRIO_PROCESS, PRIO_PGRP, or PRIO_USER, indicating that the who argument is to be interpreted as a process ID, a process group ID, or an effective user ID, respectively.


V mojom programe si zistim z /proc/ PID bežiacich procesov. To je to "who". id_t by mal byť typ z <sys/types.h>. prvá otázka je ako konvertujem string - názov adresára na typ id_t? Na int to konvertovať dokážem.
Druhá otázka - ked mám PID procesu ako zistím to "which" (PRIO_PROCESS, PRIO_PGRP, or PRIO_USER). A osobne sa mi táto informácia zdá nadbytočná, PID by malo byť dostatočné...

Vopred vďaka za odpoved

Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

25.11.2010 08:19 rastos | skóre: 62 | blog: rastos
Rozbalit Rozbalit vše Re: C++ - použitie get/setpriority
Odpovědět | | Sbalit | Link | Blokovat | Admin
which - ak ťa zaujíma priorita procesu, tak použi PRIO_PROCESS. Je to predsa jasne napísané v getpriority(2)

Ak which je PRIO_PROCESS, tak do who vkladáš PID. Pid je číslo. Skonvertovať reťazec (meno adresára) na číslo môžno napríklad pomocou atoi(3) alebo sscanf()
25.11.2010 08:23 PeterS. | skóre: 10
Rozbalit Rozbalit vše Re: C++ - použitie get/setpriority
Takže ako which mam zadať "PRIO_PROCESS" ?? Vôbec som to takto nepochopil, myslel som že to bude zase nejaké číslo ktoré mam zniekadial zohnať... ale dáva to zmysel...

čo sa týka PID, tak to mam konvertované na int, skusim to tam ako int dať uvidím čo to urobí..

Vďaka, snad to pôjde
25.11.2010 08:45 PeterS. | skóre: 10
Rozbalit Rozbalit vše Re: C++ - použitie get/setpriority
ide to, super.

ešte ku tomu PRIO_PROCESS - v tom manuále je uvedené 'int PRIO_PROCESS' - to int tam potom čo robí? To ma naviedlo na to že to má byť číslo...
25.11.2010 09:02 rastos | skóre: 62 | blog: rastos
Rozbalit Rozbalit vše Re: C++ - použitie get/setpriority
PRIO_PROCESS predsa je číslo. Konkrétne 0.
25.11.2010 09:35 PeterS. | skóre: 10
Rozbalit Rozbalit vše Re: C++ - použitie get/setpriority
no z môjho začiatočníckeho pohľadu premenná PRIO_PROCES neexistuje a nemá žiadnu hodnotu. Takže ak toto ma hodnotu 0, tak dalšie dve možnosti: PRIO_PGRP a PRIO_USER majú iné hodnoty, predpokladám...

samozrejme kedže mi to funguje, tak chápať čo a prečo už nie je také dôležité...
25.11.2010 09:42 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: C++ - použitie get/setpriority
no z môjho začiatočníckeho pohľadu premenná PRIO_PROCES neexistuje a nemá žiadnu hodnotu.

Ano, neexistuje. Ale existuje makro toho jména a to expanduje na nulu. Což vás ovšem zajímat nemusí, vám stačí vědět, že když použijete tuto konstantu, bude se to chovat určeným způsobem.

tak dalšie dve možnosti: PRIO_PGRP a PRIO_USER majú iné hodnoty, predpokladám...

Samozřejmě. Podívejte se do toho hlavičkového souboru a budete mít jasno.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.