当前位置:  技术问答>linux和unix

在linux下编译这个程序为什么不过

    来源: 互联网  发布时间:2015-10-25

    本文导语:  #include "ourhdr.h" int main(void) {int c; while((c=getc(stdin))!=EOF) if(putc(c,stdout)==EOF) err_sys("output error"); if(ferror(stdin)) err_sys("input error"); exit(0); } 这是unix环境高级编程里的程序1-3,为什么我不能编译通过,是什么问题,请高手...

#include "ourhdr.h"
int
main(void)
{int c;
while((c=getc(stdin))!=EOF)
if(putc(c,stdout)==EOF)
err_sys("output error");
if(ferror(stdin))
err_sys("input error");
exit(0);
}

这是unix环境高级编程里的程序1-3,为什么我不能编译通过,是什么问题,请高手指教,这是我在linux下编译的第一个程序,所以请大虾们尽量说的详细多谢了

|
我也正在看,那个头文件和ourhdr.c都没有,肯定失败。
代码: 

/* Our own header, to be included *after* all standard system headers */ 

#ifndef   __ourhdr_h 
#define   __ourhdr_h 

#include      /* required for some of our prototypes */ 
#include         /* for convenience */ 
#include         /* for convenience */ 
#include         /* for convenience */ 
#include         /* for convenience */ 

#define   MAXLINE   4096         /* max line length */ 

#define   FILE_MODE   (S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH) 
               /* default file access permissions for new files */ 
#define   DIR_MODE   (FILE_MODE | S_IXUSR | S_IXGRP | S_IXOTH) 
               /* default permissions for new directories */ 

typedef   void   Sigfunc(int);   /* for signal handlers */ 

               /* 4.3BSD Reno  doesn't define SIG_ERR */ 
#if   defined(SIG_IGN) && !defined(SIG_ERR) 
#define   SIG_ERR   ((Sigfunc *)-1) 
#endif 

#define   min(a,b)   ((a)  (b) ? (a) : (b)) 

               /* prototypes for our own functions */ 
char   *path_alloc(int *);         /* {Prog pathalloc} */ 
int       open_max(void);         /* {Prog openmax} */ 
void    clr_fl(int, int);         /* {Prog setfl} */ 
void    set_fl(int, int);         /* {Prog setfl} */ 
void    pr_exit(int);            /* {Prog prexit} */ 
void    pr_mask(const char *);      /* {Prog prmask} */ 
Sigfunc   *signal_intr(int, Sigfunc *);/* {Prog signal_intr_function} */ 

int       tty_cbreak(int);         /* {Prog raw} */ 
int       tty_raw(int);            /* {Prog raw} */ 
int       tty_reset(int);         /* {Prog raw} */ 
void    tty_atexit(void);         /* {Prog raw} */ 
#ifdef   ECHO   /* only if  has been included */ 
struct termios   *tty_termios(void);   /* {Prog raw} */ 
#endif 

void    sleep_us(unsigned int);   /* {Ex sleepus} */ 
ssize_t    readn(int, void *, size_t);/* {Prog readn} */ 
ssize_t    writen(int, const void *, size_t);/* {Prog writen} */ 
int       daemon_init(void);         /* {Prog daemoninit} */ 

int       s_pipe(int *);            /* {Progs svr4_spipe bsd_spipe} */ 
int       recv_fd(int, ssize_t (*func)(int, const void *, size_t)); 
                           /* {Progs recvfd_svr4 recvfd_43bsd} */ 
int       send_fd(int, int);         /* {Progs sendfd_svr4 sendfd_43bsd} */ 
int       send_err(int, int, const char *);/* {Prog senderr} */ 
int       serv_listen(const char *);   /* {Progs servlisten_svr4 servlisten_44bsd} */ 
int       serv_accept(int, uid_t *);   /* {Progs servaccept_svr4 servaccept_44bsd} */ 
int       cli_conn(const char *);   /* {Progs cliconn_svr4 cliconn_44bsd} */ 
int       buf_args(char *, int (*func)(int, char **)); 
                           /* {Prog bufargs} */ 

int       ptym_open(char *);         /* {Progs ptyopen_svr4 ptyopen_44bsd} */ 
int       ptys_open(int, char *);   /* {Progs ptyopen_svr4 ptyopen_44bsd} */ 
#ifdef   TIOCGWINSZ 
pid_t    pty_fork(int *, char *, const struct termios *, 
              const struct winsize *);   /* {Prog ptyfork} */ 
#endif 

int      lock_reg(int, int, int, off_t, int, off_t); 
                           /* {Prog lockreg} */ 
#define   read_lock(fd, offset, whence, len)  
         lock_reg(fd, F_SETLK, F_RDLCK, offset, whence, len) 
#define   readw_lock(fd, offset, whence, len)  
         lock_reg(fd, F_SETLKW, F_RDLCK, offset, whence, len) 
#define   write_lock(fd, offset, whence, len)  
         lock_reg(fd, F_SETLK, F_WRLCK, offset, whence, len) 
#define   writew_lock(fd, offset, whence, len)  
         lock_reg(fd, F_SETLKW, F_WRLCK, offset, whence, len) 
#define   un_lock(fd, offset, whence, len)  
         lock_reg(fd, F_SETLK, F_UNLCK, offset, whence, len) 

pid_t   lock_test(int, int, off_t, int, off_t); 
                           /* {Prog locktest} */ 

#define   is_readlock(fd, offset, whence, len)  
         lock_test(fd, F_RDLCK, offset, whence, len) 
#define   is_writelock(fd, offset, whence, len)  
         lock_test(fd, F_WRLCK, offset, whence, len) 

void   err_dump(const char *, ...);   /* {App misc_source} */ 
void   err_msg(const char *, ...); 
void   err_quit(const char *, ...); 
void   err_ret(const char *, ...); 
void   err_sys(const char *, ...); 

void   log_msg(const char *, ...);      /* {App misc_source} */ 
void   log_open(const char *, int, int); 
void   log_quit(const char *, ...); 
void   log_ret(const char *, ...); 
void   log_sys(const char *, ...); 

void   TELL_WAIT(void);      /* parent/child from {Sec race_conditions} */ 
void   TELL_PARENT(pid_t); 
void   TELL_CHILD(pid_t); 
void   WAIT_PARENT(void); 
void   WAIT_CHILD(void); 

#endif   /* __ourhdr_h */ 

 
这个是原代码地址
http://www.kohala.com/start/apue.html 
[code]

|
你没有编译 ourhdr.c 文件吧, 找不到ourhdr.h 和 err_sys(), 到网上搜索一下源代码吧。

|
//test.cpp
#include 
int main(void)
{
  cout 

    
 
 

您可能感兴趣的文章:

  • 一段可以在linux下编译并且运行正确的程序,在windows下编译也通不过.为什么?
  • 刚安装linux,如何在linux下编写程序?
  • 要在linux下编写关于openssl的程序,并要封装成.cab供win安装ActiveX
  • 怎样在linux下编译java?
  • 如何在linux下编写c程序
  • linux下编译firefox的问题
  • 在linux下编c程,找库
  • 急!急!急!急!急!如何在Linux下编译运行C++程序
  • 请问如何在linux环境下编写C++
  • 怎么在LINUX下编译JAVA?
  • ★★★在linux下编译pro*c文件,提示"sqlcxt"没有定义,哪位高手帮忙,定赠分!
  • 大家在UNIX/LINUX下编写C/C++程序时,用那些库?
  • 如何在linux下编写C程序?
  • 求教在LINUX下编写应用程序
  • 如何在linux下编译.pc程序
  • 请教:Linux下编译c代码,运行程序时出现undefined symbol exp
  • 求在Windows下编译Linux C程序的快捷途径?
  • linux下编译ACE5.7.5(总结)
  • linux下编译c++程序,系统头文件中包含的函数的定义源代码可以查看吗?
  • windows下编写的JAVA程序如何放到Linux下运行??
  • linux下通过crond实现自动执行程序
  • 为什么linux下的C++程序这么少见? 请问那里有linux下的C++程序?什么类型的程序都可以.
  • Linux下指定运行时加载动态库路径及shell下执行程序默认路径
  • linux上的程序怎样远程启动另一个linux系统上的某个程序
  • 如何使用linux下gdb来调试python程序
  • 在linux下面怎么安程序啊?我刚裝了一个 linux,下了一个迅雷安装程序,可是不知道怎么安装啊?真心请教。
  • Linux下c/c++开发之程序崩溃(Segment fault)时内核转储文件(core dump)生成设置方法
  • 请指点: 在windows下能否通过程序来获取linux下的用户列表,甚至通过自己写的windows程序界面增加修改linux的用户
  • Linux程序员在公司里做什么程序?(Linux程序员请进)
  • 我的linux程序 如何 在pc机器上运行。现在我用arm-linux-g++ 编译后的程序在我的嵌入设备上运行。
  • Linux 编程怎么样在程序开启一个程序,和关闭一个程序?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • linux c/c++ IP字符串转换成可比较大小的数字
  • 在win分区上安装linux和独立分区安装linux有什么区别?可以同时安装吗?(两个linux系统)
  • linux哪个版本好?linux操作系统版本详细介绍及选择方案推荐
  • 在虚拟机上安装的linux上,能像真的linux系统一样开发linux程序么?
  • secureCRT下Linux终端汉字乱码解决方法
  • 我重装window后,把linux的引导区覆盖了,进不了linux怎么办?急啊,望热心的人帮助 (现在有linux的盘)
  • Linux c字符串中不可打印字符转换成16进制
  • 安装vmware软件,不用再安装linux系统,就可以模拟linux系统了,然后可以在其上学习一下LINUX下的基本操作 了?
  • Linux常用命令介绍:更改所属用户群组或档案属性
  • 红旗Linux主机可以通过127.0.0.1访问,但如何是连网的Win2000机器通过Linux的IP去访问Linux
  • linux命令大全详细分类介绍及常用linux命令文档手册下载
  • 我重装window后,把linux的引导区覆盖了,进不了linux怎么办?急啊,望热心的人帮助 (现在没有linux的盘,只有DOS启动盘)
  • Linux Kernel 'sctp_v6_xmit()'函数信息泄露漏洞
  • 如何让win2000和linux共存。我装好WIN2000,再装LINUX7.0,但LILO只能找到LINUX,不能引导WIN2000
  • linux c下利用srand和rand函数生成随机字符串
  • 在windows中的VMware装了个linux,主板有两个串口,能做windows和linux的串口通信测试么,怎么测试这两个串口在linux是有效
  • Linux c++虚函数(virtual function)简单用法示例代码
  • java开源软件 iis7站长之家
  • Docker官方镜像将会使用Alpine Linux替换Ubuntu
  • 中文Linux与西文Linus分别哪一个版是权威?I认为是:中科软的白旗Linux与西文的绿帽子Linux!大家的看法呢?
  • Linux下chmod命令详细介绍及用法举例
  • 我重装了winme,却进不了Linux了,而我现在又没有Linux光盘,也没有Linux启动盘,还有没有办法?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3