1
這是使用Minix在C中打印進程ID和父進程ID的程序。我試圖編譯此代碼下面的測試代碼來返回ID,但它不是編譯。任何幫助,將不勝感激。向Minix添加打印父進程ID系統調用
//Program to print its Process ID, Parent Process ID
#include <stdio.h>
#include "pm.h" // for various global variables
#include "mproc.h" // for process table mproc
int do_printppids(void)
{
int idx = m_in.m1_i1;
int n = m_in.m1_i2;
while(n > 0)
{
int pid = mproc[idx].mp_pid;
if(pid)
{
int parent = mproc[mproc[idx].mp_parent].mp_pid;
printf("proc: %sn", mproc[idx].mp_name);
printf("Pid: %d, PPid %dn", pid, parent);
n++;
}
else
{
n = 0;
}
idx++;
}
return 1;
}
這是我的測試類,嘗試返回進程ID和父進程ID,但它不在Minix中編譯。
#include <lib.h> // provides _syscall and message
#include <stdio.h>
#include <stdlib.h> // provides atoi
int main(void) {
message m; // Minix uses message to pass parameters to a system call
m_in.m1_i1 = 0;
m_in.m1_i2 = 10;
_syscall(PM_PROC_NR, PRINTPPIDS, &m);
}
你會得到什麼錯誤信息? – MikeCAT
test.c:13:26:error:使用未聲明的標識符'PRINTPPIDS' _syscall(PM_PROC_NR,PRINTPPIDS,&m); –
您將不得不在'main()'函數中定義'PRINTPPIDS' – MikeCAT