linux 编程的一个小问题

QIAOXUEBAOQIAO1991 2012-04-05 12:35:23
#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程序没错误啊!
...全文
148 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
帅得不敢出门 2012-04-06
  • 打赏
  • 举报
回复
楼主写应用程序还是内核的
deep_pro 2012-04-05
  • 打赏
  • 举报
回复
lz啊 你这个程序简直错得一塌糊涂
首先,void main() ,实在不想多说了



还有,你这个到底是内核程序还是应用程序呢
要是内核程序,#include "stdio.h" 还有那个 main 怎么可能啊

要是应用程序,
truct task_struct *p;
for_each_process(p)
这些内核专用的结构体和api又如何解释

gcc不报错才鬼啊,仅仅包含一个 #include "sched.h"就想写内核态程序是不可能的
xuexingyang 2012-04-05
  • 打赏
  • 举报
回复
权楼主看书的时候要仔细些,没有老师或者专家就写这样的代码吧。
root_jli 2012-04-05
  • 打赏
  • 举报
回复
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);
}
deep_pro 2012-04-05
  • 打赏
  • 举报
回复
lz不错的 知道自己写程序练习遍历内核数据结构
可惜基础不足
从void main 和"头文件" 看得出受到各种半瓶水c语言教材和老师的毒害

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

4,465

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
  • 内核源代码研究区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧