我正在修改Android OS的一部分的項目,並且當我嘗試實現新系統調用以返回所有進程的狀態時,遇到以下問題錯誤:C:數組類型中的錯誤具有不完整的元素類型
kernel/sys.c: error: array tpye has incomplete element type.
我在sys.c所做的是以下幾點:
/***previous code in sys.c***/
SYSCALL_DEFINE2(new_syscall, struct info __user*, buf, int __user*, nr){
if(!buf || !nr) return -EINVAL;
int nr_copy;
int success;
success = copy_from_user(&nr_copy, nr, sizeof(int));
if(success == 0) return -EINVAL;
if(nr_copy < 1) return -EINVAL;
struct info buf_copy[nr_copy]; /*************
return 0;
}
編者抱怨標有星線。
我info.h文件看起來像這樣:
#ifndef __LINUX_INFO_H
#define __LINUX_INFO_H
struct info {
long state;
pid_t pid;
pid_t parent_pid;
};
#endif
我試過,包括sys.c的info.h,但它並沒有幫助的。任何人都可以向我提供一些我應該看到的方向嗎?
謝謝
的可能的複製[陣列型有編譯時不完整的元素類型的錯誤(http://stackoverflow.com/questions/10386539/array-type-has-incomplete-element -type-error-when-compiling) – Kusalananda