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

谁能一起来分析一下这个API

    来源: 互联网  发布时间:2016-02-03

    本文导语:  errlog_open Subroutine (摘自AIX5.2 Technical Reference: Base Operating System and Extensions, Volume 1) Purpose  Opens an error log and returns a handle for use with other liberrlog.a functions.  Syntax  library liberrlog.a   #include    #include    in...


errlog_open Subroutine (摘自AIX5.2 Technical Reference: Base Operating System and Extensions, Volume 1)

Purpose
 Opens an error log and returns a handle for use with other liberrlog.a functions. 

Syntax
 library liberrlog.a 
 #include  
 #include  
 int errlog_open(path, mode, magic, handle) 
 char *path; int mode; unsigned int magic; 
 errlog_handle_t *handle; 

Description 

The error log specified by the path argument will be opened using mode. The handle pointed to by the handle parameter must be used with subsequent operations. 

Parameters 

The path parameter specifies the path to the log file to be opened. If path is NULL, the default errlog file will be opened. The valid values for mode are the same as they are for the open system subroutine. They can be found in the fcntl.h files. The magic argument takes the LE_MAGIC value, indicating which version of the errlog_entry_t structure this application was compiled with. 

Return Values 
Upon successful completion, the errlog_open subroutine returns a 0 and sets the memory pointed to by handle to a handle used by subsequent liberrlog operations. 

Upon error, the errlog_open subroutine returns one of the following:
LE_ERR_INVARG     A parameter error was detected.
LE_ERR_NOFILE     The log file does not exist. 
LE_ERR_NOMEM      Memory could not be allocated.
LE_ERR_IO         An i/o error occurred.
LE_ERR_INVFILE    The file is not a valid error log.


我在开发一个监控AIX system error log的程序,虽然用shell更简单一些,但我必须用C来实现它。上面这个API就是用来打开system error log的系统调用,在程序中这个系统调用返回值为1,请问我如何判断错误返回类型是:LE_ERR_INVARG  LE_ERR_NOFILE LE_ERR_NOMEM  LE_ERR_IO  LE_ERR_INVFILE中的哪一种?

以下是我的程序代码及运行输出,请帮忙查看我的程序和方法是否有错误?(共两个问题)
asm@zhguowen_sv:/asmdev/asm$vi errlog_op.c
"errlog_op.c" 30 lines, 509 characters
#include 
#include 
#include 
#include 

int mode;
unsigned int magic;
errlog_handle_t hl;

main()
{
   mode=0;
   magic=LE_MAGIC;
   int rc,ac;
   char path[]="/var/adm/ras/errlog";
   int er_dir=LE_REVERSE;
   rc=errlog_open(path,mode,magic,hl);
   sleep(1);
   if (rc==0) { printf("nopen errlog sucessful!n"); }
   else
   {
       printf("nopen errlog failed!rc=%in",rc);

   }

   ac=errlog_set_direction(hl,er_dir);
   printf("n ac= %i",ac);

}
~~
:q!
asm@zhguowen_sv:/asmdev/asm$cc -lperfstat errlog_op.c /usr/lib/liberrlog.a
asm@zhguowen_sv:/asmdev/asm$./a.out

open errlog failed!rc=1

 ac= 1

|
1. 请问我如何判断错误返回类型是:LE_ERR_INVARG  LE_ERR_NOFILE LE_ERR_NOMEM  LE_ERR_IO  LE_ERR_INVFILE中的哪一种?
====
用switch (rc) 或if (LE_ERR_INVARG == rc) 

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • top 显示的%MEM 是什么意思呢?我把这些值加起来超过了100%,这怎么回事呢?(我运行oracle,它的多个进程加起来就超过了。。。)
  • vmware怎么优化?在vmware上装linux运行起来是不是特别慢?我在256内存的p4上安装,运行起来很慢!
  • 求救!Redhat Linux 7.1加强了安全性方案,系统起来后不自动启动ftp,telnet,http等服务了,请问我该如何设置才让他们都起来呀?
  • Gtk+与Qt谁学起来更容易?
  • apache启动不起来了
  • 安装VisualAge3.5后运行不起来
  • Apache 1.3.20和Tomcat 4能否结合起来?
  • 急!到底要多少内存WS+DB2才能跑起来?
  • 欢迎大家一起来讨论:集群在J2EE中的实现。
  • EJB调试起来好麻烦,请问各位有什么高招?
  • 把Resin+IIS结合起来使用以后,
  • 高分求教!!!!如何将数据库的查询结果组合起来?
  • 怎么把JTextField和JButton联系起来?????????
  • 如何将几个文件编译起来
  • solaris下如何把weblogic和apache的服务做成随开机自动起来,急急急!
  • 装好linux后,感觉里面的字体看起来好不爽..请问怎么改为像windows一样
  • Red Had Enterprise linux AS 4 上的 vsftpd 开不起来?
  • Linux系统刚启动起来的时候为什么会阻塞一下?
  • fedora core 6上的samba配不起来,求助
  • linux下QQ用不起来?


  • 站内导航:


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

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

    浙ICP备11055608号-3