2 qq 34776367 qq_34776367 于 2016.09.13 08:59 提问

如何在源代码中找到pppoe错误码的返回值

新人刚进公司,做的是onu,主管叫找到链接错误时的返回值,完全没有头绪

1个回答

Mr0Yang
Mr0Yang   2016.09.13 09:56

#include // void perror(const char *msg);
#include // char *strerror(int errnum);
#include //errno

errno 是错误代码,在 errno.h头文件中;
perror是错误输出函数,输出格式为:msg:errno对应的错误信息(加上一个换行符);
strerror 是通过参数 errnum (就是errno),返回对应的错误信息。

以下是测试程序:

// p_str_error.c

// perror , strerror 函数 , errno 测试

 #include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>

int main(int argc, char *argv[])
{
 FILE *fp;
 char *buf;
 if( (fp = fopen(argv[1], "r")) == NULL)
 {
  perror("perror"); // 好方便
  errno = 12;
  printf("strerror: %s\n", strerror(errno)); //转换错误码为对应的错误信息
  exit(1);
 }
 perror("perror");
 errno = 13;
 printf("strerror: %s\n", strerror(errno));

 fclose(fp); 
 return 0;
}

输入一个存在的文件名,如:./a.out 111
open失败则会输出:

 perror: No such file or directory
strerror: Cannot allocate memory
open成功则会输出:
perror: Success
strerror: Permission denied
Mr0Yang
Mr0Yang 回复qq_34776367: 在错误时调用上面的函数会返回如651,在协议说明里有对错误号的描述,将错误值对应的错误号显示出来
接近 2 年之前 回复
qq_34776367
qq_34776367 就是那种拨号错误时会提示651,650之类的错误码,要从代码中找出来,完全不懂啊
接近 2 年之前 回复
qq_34776367
qq_34776367 我感觉可能是我没说清楚,主管给了我一大堆代码,就是pppoe的源代码,他给我说开源的,叫我看pppoe协议和代码,把链接错误时提示的错误码返回值找出来,可是我看了协议还是不懂怎么找,能方便加个qq或微信详聊么
接近 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
PPPOE源码分析
一、PPPOE协议简介 1、Discovery阶段   此阶段用来建立连接,当一个用户主机想开始一个PPPoE会话时,首先必须进行发现阶段以识别PPPoE Server的以太网MAC地址,并建立一个PPPoE会话标识(Session ID)。 图1-1 Discovery阶段的基本工作流程   如图1-1所示, Discovery阶段由四个步骤组成,下面将介绍它的基本工作流程
教你怎么从网页代码中找出图片链接
问题描述如下: 我做过一些应用程序开发,对web开发不很了解,特来求助web开发的大神们。 我想找一个能下载漫画的网址。 思路是这样的: 从看漫画的网站源代码中找出他们放漫画图片的链接,用这个链接来下载。 但是看了一些漫画网的源代码后找不到图片的链接,请各位帮帮忙。 例如下面这俩网址: http://www.xxxcom/comic/17561.html http:
linux下PPPoE Server测试环境搭建
1.1  服务器软件安装 安裝PPPoE Server 所需的软件: Ø  安装ppp模块: sudo apt-get install ppp   //一般默认下已安装 Ø  安装rp-pppoe,从网络上下载安装包后拷贝到任意路径下,本文使用rp-pppoe-3.11版本: sudo tar zxvf rp-pppoe-3.11.tar.gz       //解压安装文件到当前路径,解
[PPPOE]RP-PPPOE源码分析
1.命令pppoe-connect中实际调用的pppoe命令为:/usr/sbin/pppoe -p /var/run/pppoe_eth1.pid.pppoe -I eth1 -T 80 -U -m 14122.选项-I if_name 指定拨号网卡,默认 eth0 -D filename 指定日志文件 -T timeout 指定会话的select超时时间,默认为阻塞 -
C#知识类库 C#注释符
C#知识类库 C#注释符 编辑器技巧 窗体加载错误码 如何在IDE输入命令行参数
VC-RAS拨号源码详解(2009-11-17 08:25:24)转载▼标签: ifidc错误代码it
VC-RAS拨号源码详解 (2009-11-17 08:25:24) 转载▼ 标签: if idc 错误代码 it       很少写博文,曾经在网上找了许多关于RAS拨号源码的文章,但看的都是一支半解,不是看不懂,只是写的不详,结果的确让自己费了许多心思,我所用到的RAS拨号,只要运用于无线网卡的拨号上网功能,如果还想实现其他功能的,
pppoe源码分析
pppoe源码分析发现阶段 1 PADIactive discovery initiation 2 PADO active discovery offer 3 RADR active discovery request 4 PADS active discovery session-confirmation 5 PADT 会话阶段 关键数据结构
pppoe协议和pppd源码分析
pppoe协议简介 (一)发现(Discovery)阶段   在发现(Discovery)阶段中用户主机以广播方式寻找所连接的所有接入集中器(或交换机),并获得其以太网MAC地址。然后选择需要连接的主机,并确定所要建立的PPP会话标识号码。发现阶段有4个步骤,当此阶段完成,通信的两端都知道PPPoESESSION-ID和对端的以太网地址,他们一起唯一定义PPPoE会话。这4个步骤如下。 (1
android移植pppoe实现拨号上网全过程
硬件环境:Tiny6410开发板 软件环境:fedora14 + Android 2.3.4 + linux-2.6.36 所需资源:rp-pppoe-3.11.tar.gz http://www.roaringpenguin.com/products/pppoe 1、编译内核支持ppp   android自带pppd,所以只需要移植pppoe就行了
在一个整数数组中寻找符合A+B=C的组合,使C为最大
private void button1_Click(object sender, EventArgs e){    #region 初始化数组    int[] array = new int[arrayLength];    Random random = new Random(1000); // 固定随机种子,使大家测试数据一致    for (int i = 0; i array.Len