Cred ca ar fi mai util sa arunci o privire prin sursele de la procps.
Daca ai fi o functie in kernel :) ti-ar merge si ce incerci tu.
Ideea e, conform cu procps, sa iterezi cu read (vezi si rezultatul
lui "strace ps") prin /proc/{pid}/cmdline si sa-ti populezi o structura
cu numele proceselor si pid-urile asociate.
Laurentiu
-----Original Message-----
From: Dorin Lazar [mailto:[EMAIL PROTECTED]]
Sent: Monday, June 24, 2002 4:39 PM
To: [EMAIL PROTECTED]
Subject: [rlug] Intrebare de programare
Vreau sa folosesc intr-un program lista de procese din sistem. In
<linux/sched.h> e definita task_struct si functii pentru regasirea
proceselor
dupa PID. Daca insa scriu un program simplu de genul:
#include <linux/sched.h>
#include <stdio.h>
int main(void)
{
task_struct *p = find_task_by_pid(1);
do {
printf ("%d\n", p->pid);
p=p->next_task;
} while (p);
return 0;
}
Imi da o multzime de erori la compilare. S-a compilat cu:
cc -Wall -mcpu=i686 -O3 -pipe proctest.c -o proctest
Erorile:
In file included from /usr/include/linux/sched.h:14,
from proctest.c:1:
/usr/include/linux/timex.h:173: field `time' has incomplete type
In file included from /usr/include/linux/sched.h:81,
from proctest.c:1:
/usr/include/linux/timer.h:32: field `vec' has incomplete type
/usr/include/linux/timer.h:37: field `vec' has incomplete type
/usr/include/linux/timer.h:63: field `list' has incomplete type
/usr/include/linux/timer.h: In function `timer_pending':
/usr/include/linux/timer.h:122: warning: control reaches end of non-void
function
proctest.c: In function `main':
proctest.c:6: `task_struct' undeclared (first use in this function)
proctest.c:6: (Each undeclared identifier is reported only once
proctest.c:6: for each function it appears in.)
proctest.c:6: `p' undeclared (first use in this function)
proctest.c:6: warning: implicit declaration of function `find_task_by_pid'
proctest.c:6: invalid lvalue in assignment
proctest.c:12: warning: control reaches end of non-void function
Multumesc anticipat,
Dorin Lazar
--
--
******************************************************************************
The information contained in this communication is confidential and
may be legally privileged. It is intended solely for the use of the
individual or entity to whom it is addressed and others authorised to
receive it. If you are not the intended recipient you are hereby
notified that any disclosure, copying, distribution or taking action in
reliance of the contents of this information is strictly prohibited and
may be unlawful. Orange Romania SA is neither liable for the proper,
complete transmission of the information contained in this communication
nor any delay in its receipt.
******************************************************************************
---
Pentru dezabonare, trimiteti mail la
[EMAIL PROTECTED] cu subiectul 'unsubscribe rlug'.
REGULI, arhive si alte informatii: http://www.lug.ro/mlist/