小编pra*_*pta的帖子

如何从MIB文件中获取OID?

我想读取经理所拥有的MIB文件中的所有对象.

我开发了一个工具来从启用SNMP的代理中获取一些数据.我想通过显示管理器的MIB文件中的所有OID来增强该工具.

我正在使用NET-SNMP库.

我看到以下内容:

/usr/local/share/snmp/mibs/ 
Run Code Online (Sandbox Code Playgroud)

文件夹,它包含许多MIB文件,但我如何形成它拥有的OID列表?

我浏览了MIB并查看了结构,但是如何获取MIB文件中提到的每个对象的OID?

我想列出所有OID,如下所示:

  1. SNMPv2-MIB::sysDescr.0 = .1.3.6.1.2.1.1.1.0
  2. SNMPv2-MIB::sysObjectID.0 = .1.3.6.1.2.1.1.2.0 ......等

我想扫描所有MIB文件并查找文件中的所有OID.

我该怎么做呢?

snmp mib net-snmp

11
推荐指数
3
解决办法
5万
查看次数

如果未在声明中初始化,则在c中使用const值有什么用?

可能重复:
C中的const与C++中的const

我有以下代码

在C.

int main()
{
    const int k;//allowed but garbage and later we can't modify
    printf("%d",k);
}
Run Code Online (Sandbox Code Playgroud)

O/P =垃圾

在C++中

int main()
{
    const int k; //not allowed from here itself
    printf("%d",k);
}
Run Code Online (Sandbox Code Playgroud)

o/p-compile时间错误

我怀疑constC中的用法是什么,如果它是allowed宣布它没有,initialization但在它之后declaration我们不能initialize它.

但是c++,如果没有,我们就不能宣布一个const价值initialization.

是否有任何变量k使用C或者它是无用的,如果我们只是声明它,因为以后的修改是不可能的.

c c++

10
推荐指数
1
解决办法
246
查看次数

为什么有必要将中断处理程序函数标记为静态?

在阅读Robert Love的"Linux内核开发"时,我在第119页找到:

中断处理程序通常标记为静态,因为它永远不会直接从另一个文件调用.

例如:

static irqreturn_t intr_handler(int irq, void *dev)
Run Code Online (Sandbox Code Playgroud)

但为什么会这样呢?我怀疑这个函数是否会由内核调用,如果我们将其设置为静态,那么内核将如何调用它呢?

c linux linux-device-driver

7
推荐指数
1
解决办法
714
查看次数

手臂裸机系统的CPU使用率测量

我正在开发一个ARM cortex M4评估板,它是一个bare metal没有运行任何操作系统的应用程序.

现在我想测量CPU给定过程/算法的使用情况,最好的方法是什么?

我应该实施一个操作系统来衡量CPU具有此类需求功能的使用情况吗?

c c++ embedded arm bare-metal

6
推荐指数
1
解决办法
2148
查看次数

为什么对float的char值赋值不起作用

注意:这个问题非常简单,但是当我在谷歌搜索时,我没有得到任何明确的澄清.

我有以下计划

int main()
{
 float c;
 scanf("%f",&c);
 printf("%f",c);
}
Run Code Online (Sandbox Code Playgroud)

o/p当我给出一个int值(e,g - 9)时,它显示为9.000000

但是当我给出像'a'这样的char值时,它没有显示并显示0.000000.I我知道memory representation of float它完全不同int但是当我给int value (9)它时它是如何显示但是当我给出时char (a)它也是一个int(97)是没有显示.

它是如何发生的.char分配期间的内存表示是什么.

c

3
推荐指数
1
解决办法
568
查看次数

这是未定义的行为还是正常输出

这是一个非常简单的问题,但在序列点上甚至有一些疑问.

int a[3] = {1,2,4};
printf("%d",++a[1]);
Run Code Online (Sandbox Code Playgroud)

O/P

3
Run Code Online (Sandbox Code Playgroud)

这是一个有效的c语句,我得到输出3,这意味着它是相同的

++(a[1])
Run Code Online (Sandbox Code Playgroud)

但是这是如何可能的,因为我们有一个预增量运算符,必​​须先递增第a一个,然后必须发生解除引用.

请纠正我的疑问.我们怎么样3

c gcc sequence-points

3
推荐指数
1
解决办法
67
查看次数

增量运算符给出分段错误?

可能重复:
通过指针更改C中的字符串文字?

这是一个代码示例

void main()  
{

    char *i="prady";  printf("%c ",++*i); 
}
Run Code Online (Sandbox Code Playgroud)

任何人都可以告诉我为什么这个代码在gcc中给出了一个分段错误,我猜它应该给'q'.当我只使用*i++它给我结果但是预先增量只是它给我一个分段错误.

还告诉我为什么void main不是写main()函数的正确方法.

c

2
推荐指数
1
解决办法
1135
查看次数

有没有C++参考手册作为C:参考手册?

是否有任何书籍涵盖了最新的c ++标准,我想了解这个标准的使用方法.我想读一本像书这样的书 - > C参考手册,由先生哈比森.

c++ c++11

2
推荐指数
1
解决办法
290
查看次数

如何使用特殊的char $和'获取字符串

我有一个基本问题,但无法弄清楚如何做到这一点.

我需要使用C文件中的密码构造一个命令字符串,并且需要执行该命令.我正在使用Linux.

我在做什么

sprintf(command, "mycommand with password=$passw'ord");
system(command);
Run Code Online (Sandbox Code Playgroud)

我面临的问题是当我'在命令执行期间使用时,如下所示 '$passw\'ord',它无法正常工作.

当尝试如下

sprintf(command, "mycommand with password='$passw\'ord'");//没有>在终端显示它并将错误显示为未终结'

但是当传球只是'$password'工作,但我也需要传球'.

试试我们可以使用

echo  '$password' //working
echo  '$passw\\'ord' //Not working
Run Code Online (Sandbox Code Playgroud)

这有什么用的吗?

c linux bash shell

1
推荐指数
1
解决办法
76
查看次数

短的无符号数据中的字节分配

请检查以下程序

#include <stdio.h>
#include<stdlib.h>
int main()
{
        char *Date= NULL;
        unsigned short y=2013;
        Date =  malloc(3);
        sprintf((char *)Date,"%hu",y);  
        printf("%d %d %d %d %d \n",Date[0],Date[1],Date[2],Date[3],Date[4]);

        printf("%s %d %d",Date,strlen(Date),sizeof(y));
}

output:
50 48 49 51 0
2013 4 2
Run Code Online (Sandbox Code Playgroud)

我如何得到字符串长度4而不是2,因为我将一个短整数值放入内存,所以它应该占用2字节的内存.但它是如何占用4字节.

每个字节如何从输入获得2 0 1 3,而在一个字节中为20,在另一个字节中为13.

我想把20到1个字节和13个放到另一个字节.怎么做.请告诉我

请给出一些答案.

c

0
推荐指数
1
解决办法
137
查看次数

memset无法正常工作

我有以下一组代码无法找到我获得垃圾值的原因.我的意图是将字节数复制为目标而不管源是否为我的应用程序制作通用副本.但没有得到正确的结果.有没有办法实现这一目标.

int main()
{
    char x[6];
    char *i="pra";
    memset(&x,0,6); //Doing memset

    memcpy(&x,i,6);
    printf("%x %x %x %x %x %x",x[0],x[1],x[2],x[3],x[4],x[5]);
}

o/p:
70 72 61 0 25 78
Run Code Online (Sandbox Code Playgroud)

我们可以看到0之后的输出是垃圾.但是为什么它正在进行以及它的来源.乳清memset不能正常工作.Pleae有助于了解这一概念的原因.

c linux libc memcpy

-1
推荐指数
1
解决办法
225
查看次数

标签 统计

c ×9

c++ ×3

linux ×3

arm ×1

bare-metal ×1

bash ×1

c++11 ×1

embedded ×1

gcc ×1

libc ×1

linux-device-driver ×1

memcpy ×1

mib ×1

net-snmp ×1

sequence-points ×1

shell ×1

snmp ×1