日期:2014-05-16  浏览次数:20681 次

linux 编程的一个小问题
#include "stdio.h"
  #include "sched.h"
 
 void main(){
  struct task_struct *p;
  for_each_process(p){
  printf("%d\n",p->pid);
 }
}

  在终端运行:gcc -o a a.c
  老提示在6行也就是for_each_process 后 {之前要加“;”,为什么啊,C程序没错误啊!

------解决方案--------------------
for_each_process(p){
printf("%d\n",p->pid);
 }

函数for_each_process(p)调用完成加“;”,跟后面的{printf("%d\n",p->pid);}有什么关系?
如果调用成功才打印pid
假设for_each_process(p)返回0成功
if(!for_each_process(p)){
printf("%d\n",p->pid);
 }
------解决方案--------------------
lz不错的 知道自己写程序练习遍历内核数据结构 
可惜基础不足
从void main 和"头文件" 看得出受到各种半瓶水c语言教材和老师的毒害

谁都有过这样的经历,加油努力啊

------解决方案--------------------
权楼主看书的时候要仔细些,没有老师或者专家就写这样的代码吧。
------解决方案--------------------
楼主写应用程序还是内核的