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/


Raspunde prin e-mail lui