Codice: Seleziona tutto
#include <stdio.h>
#include <linux/sched.h> /*from /usr/src/linux/include/linux */
int main( void )
{
struct task_struct *task = &init_task;
do
{
printf("%s [%d] parent %s\n", task->comm, task->pid, task->parent->comm );
} while((task = next_task(task)) != &init_task );
return 0;
}
Codice: Seleziona tutto
p.c: In function 'main':
p.c:7: error: 'init_task' undeclared (first use in this function)
p.c:7: error: (Each undeclared identifier is reported only once
p.c:7: error: for each function it appears in.)
p.c:12: error: dereferencing pointer to incomplete type
p.c:12: error: dereferencing pointer to incomplete type
p.c:12: error: dereferencing pointer to incomplete type
p.c:14: warning: assignment makes pointer from integer without a cast
Codice: Seleziona tutto
simo@localhost:~/Desktop/d$ gcc -I /usr/src/linux/include/ p.c -o p
In file included from /usr/src/linux/include/linux/preempt.h:9,
from /usr/src/linux/include/linux/spinlock.h:50,
from /usr/src/linux/include/linux/rcupdate.h:37,
from /usr/src/linux/include/linux/init_task.h:4,
from p.c:4:
/usr/src/linux/include/linux/thread_info.h:26: error: expected specifier-qualifier-list before 'u32'
/usr/src/linux/include/linux/thread_info.h:34: error: expected specifier-qualifier-list before 'clockid_t'
In file included from /usr/src/linux/include/asm/bitops.h:13,
from /usr/src/linux/include/linux/bitops.h:17,
from /usr/src/linux/include/linux/thread_info.h:46,
from /usr/src/linux/include/linux/preempt.h:9,
from /usr/src/linux/include/linux/spinlock.h:50,
from /usr/src/linux/include/linux/rcupdate.h:37,
from /usr/src/linux/include/linux/init_task.h:4,
from p.c:4:
/usr/src/linux/include/asm/alternative.h:45: error: expected specifier-qualifier-list before 'u8'
In file included from /usr/src/linux/include/linux/bitops.h:17,
from /usr/src/linux/include/linux/thread_info.h:46,
from /usr/src/linux/include/linux/preempt.h:9,
....
Il codice arriva da questa pagina, io peró l'ho editato un pó appunto per non eseguirlo come un modulo. Se é possibile compilarlo, e penso di si, quali sono i flag corretti? O é proprio necessario un makefile?
Grazie per il vostro insegnamento