LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1467|回复: 2

[已解决][新手提问]如何包含syscalls.h头文件?C程序设计语言第二版8.2例子

[复制链接]
发表于 2007-2-25 22:59:57 | 显示全部楼层 |阅读模式
C程序设计语言第二版8.2例子

  1. #include "syscalls.h"
  2. int main() /* copy input to output */
  3. {
  4.         char buf[BUFSIZ];
  5.         int n;
  6.        
  7.         while ((n = read(0, buf, BUFSIZ)) > 0)
  8.                 write(1, buf, n);
  9.         return 0;
  10. }
复制代码

编译出错: syscalls.h: 没有那个文件或目录
/usr/include中没有syscalls.h
/usr/src/kernels/2.6.9-42.0.3.EL-smp-i686/include/linux/到有一个

请问如何解决?
thanks!


man 2 write看了一下,要#include <unistd.h>
就用
#include <stdio.h>
#include <unistd.h>
替换#include "syscalls.h"竟然能行!
发表于 2007-2-26 11:50:13 | 显示全部楼层
Post by iso
C程序设计语言第二版8.2例子

  1. #include "syscalls.h"
  2. int main() /* copy input to output */
  3. {
  4.         char buf[BUFSIZ];
  5.         int n;
  6.        
  7.         while ((n = read(0, buf, BUFSIZ)) > 0)
  8.                 write(1, buf, n);
  9.         return 0;
  10. }
复制代码

编译出错: syscalls.h: 没有那个文件或目录
/usr/include中没有syscalls.h
/usr/src/kernels/2.6.9-42.0.3.EL-smp-i686/include/linux/到有一个

请问如何解决?
thanks!


man 2 write看了一下,要#include <unistd.h>
就用
#include <stdio.h>
#include <unistd.h>
替换#include "syscalls.h"竟然能行!

没看这本书,内核头文件最好不要和应用程序头文件混着用。本来就应该包含unistd.h,没什么奇怪的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-2-26 16:00:58 | 显示全部楼层
C程序设计语言第二版 第8章讲的是C程序UNIX接口,跟linux有点不同,我想这个例子在BSD上应能通过吧!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表