Code: Alles auswählen
#include <linux/sched.h>
int main (void)
{
struct task_struct * task;
task = find_task_by_pid(16233);
return 0;
}
Code: Alles auswählen
#include <linux/sched.h>
int main (void)
{
struct task_struct * task;
task = find_task_by_pid(16233);
return 0;
}
Stimmt daran hatte ich nicht gedacht, bin ja aber auch noch blutiger Kernelnewbie.Torsten hat geschrieben:Moinsen,
bist Du Dir sicher, dass man das so als userprocess oder selbst im userspace laufen lassen kann? Ich denke beinahe nicht. Denn immerhin wird damit, solange ich gerade nicht total falsch liege, ein Zugriff auf die PID Hashtabelle vorgenommen. Das findet wohl eher Verwendung in Modulen. Lasse mich selbst aber auch gerne belehren.
Grüße
Torsten
Können eigentlich nur Module auf den Kernel-space zugreifen, oder gibt es auch andere Möglichkeiten?WARN := -W -Wall -Wstrict-prototypes -Wmissing-prototypes
INCLUDE := -isystem /lib/modules/`uname -r`/build/include
CFLAGS := -O2 -DMODULE -D__KERNEL__ ${WARN} ${INCLUDE}
CC := gcc
OBJS := ${patsubst %.c, %.o, ${wildcard *.c}}
all: ${OBJS}
.PHONY: clean
clean: rm -rf *.o
Code: Alles auswählen
CC=gcc
CFLAGS := -I/usr/src/linux/include -O2 -Wall -DCONFIG_KERNELD -DMODULE -D__KERNEL__ -DLINUX
all: treiber.o
treiber.o: treiber.c /usr/include/linux/version.h
$(CC) $(CFLAGS) -c treiber.c
ins:
insmod treiber.o
rm:
rmmod treiber