コード例 #1
0
JNIEXPORT jobjectArray SIGAR_JNIx(getProcArgs)
(JNIEnv *env, jobject sigar_obj, jlong pid)
{
    int status;
    unsigned int i;
    sigar_proc_args_t procargs;
    jobjectArray argsarray;
    jclass stringclass = JENV->FindClass(env, "java/lang/String");
    dSIGAR(NULL);

    if ((status = sigar_proc_args_get(sigar, pid, &procargs)) != SIGAR_OK) {
        sigar_throw_error(env, jsigar, status);
        return NULL;
    }

    argsarray = JENV->NewObjectArray(env, procargs.number, stringclass, 0);
    SIGAR_CHEX;

    for (i=0; i<procargs.number; i++) {	
		
		jstring s = getProcArgStr(procargs.data[i], env);
        JENV->SetObjectArrayElement(env, argsarray, i, s);
        SIGAR_CHEX;
    }

    sigar_proc_args_destroy(sigar, &procargs);

    return argsarray;
}
コード例 #2
0
ファイル: rbsigar.c プロジェクト: mdkent/sigar
static VALUE rb_sigar_proc_args(VALUE obj, VALUE pid)
{
    int status;
    sigar_t *sigar = rb_sigar_get(obj);
    sigar_proc_args_t args;
    VALUE RETVAL;

    status = sigar_proc_args_get(sigar, OBJ2PID(pid), &args);

    if (status != SIGAR_OK) {
        RB_SIGAR_CROAK;
    }

    RETVAL = rb_sigar_new_strlist(args.data, args.number);

    sigar_proc_args_destroy(sigar, &args);

    return RETVAL;
}