The following stuff works on Linux with JDK1.2 for getting the process id (and that of the parent).
Steps to do:
And the sources (the header is generated by javah)
unistd.java
j_unistd.c
Steps to do:
javac unistd.java
javah -jni -o j_unistd.h unistd
JHOME=/usr/lib/jdk1.2.2
gcc -shared -I. -I"$JHOME"/include -I"$JHOME"/include/linux
j_unistd.c -o libj_unistd.so
export LD_LIBRARY_PATH=.
java unistd
And the sources (the header is generated by javah)
unistd.java
import java.util.Properties;
public class unistd {
public static native long getpid();
public static native long getppid();
static {
System.loadLibrary("j_unistd");
}
public static void main(String argv[]) {
System.out.println(getpid() + " " + getppid());
}
}
j_unistd.c
#include "j_unistd.h"
#include <unistd.h>
#include <string.h>
JNIEXPORT jlong JNICALL Java_unistd_getpid
(JNIEnv *envp, jclass clazz)
{
return getpid();
}
JNIEXPORT jlong JNICALL Java_unistd_getppid
(JNIEnv *envp, jclass clazz)
{
return getppid();
}
'컴퓨터/IT' 카테고리의 다른 글
자바에서 로그 쓸때 줄번호 남기기 (0) | 2009.04.15 |
---|---|
[오라클/MySQL/MSSQL] 테이블 구조 복사 (0) | 2009.04.14 |
내손안의 PC 빌립 S5 (0) | 2009.03.30 |
Microsoft Windows 2003 Server 최적화 설정하기 (0) | 2009.03.21 |
자바에서 프로그램으로 kill 시그널 캡쳐방법과 종료시 메소드 호출(소멸자 같은)하는 후킹 방법 (0) | 2009.03.19 |