小编Ami*_*mar的帖子

是否可以将二进制搜索应用于链接列表以查找元素?

我读过一个问题,是否可以在链接列表中应用二进制搜索?

由于链接列表不允许随机访问,因此这看起来几乎是不可能的.

任何人都有办法吗?

c linked-list binary-search

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

结构中的内存泄漏是什么?我们怎样才能纠正这个问题呢?

我在面试时被问过

结构中的内存泄漏是什么?我们怎样才能纠正这个问题呢?

任何人都可以帮助我理解结构中的内存泄漏吗?

c structure

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

给出的文件在Linux上的netstat -s中意味着什么

我正在分析输出,netstat -s并想知道"输入ICMP消息失败"是什么意思.以下是输出netstat -s,

Icmp: 
      643 ICMP messages received 
      0 input ICMP message failed. 
      ICMP input histogram:
        destination unreachable: 450 
        echo requests: 9 
        echo replies: 2 
      102 ICMP messages sent 
      0 ICMP messages failed 
      ICMP output histogram: 
        destination unreachable: 84 
        echo request: 9 
        echo replies: 9

 Icmp:
    648 ICMP messages received
    0 input ICMP message failed.
    ICMP input histogram:
      destination unreachable: 450
      echo requests: 14
      echo replies: 2
    107 ICMP messages sent
    0 ICMP messages …

linux ip networking icmp linux-kernel

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

为什么Coredump文件不在这里生成?

我在这里有一个情况,几天前我能够在我的目标板上看到核心的哑文件,我通过在我的/etc/profile中添加"ulimit -c unlimited"来提供coredump生成支持.但是有人告诉我

这只会对从登录shell启动的程序产生影响,而不会对systemd启动的进程/服务产生影响,等等/限制将是设置这些默认设置的正确位置.

所以我更改了/ etc/limits文件并添加了"ulimit -c unlimited"行.但是现在我看不到Coredumped文件

我正在运行kill -9 $$来生成分段错误,而它反过来会像之前那样生成coredump文件.

我们尝试更改"/ proc/sys/kernel/core_pattern"文件并明确地运行ulimit -c unlimited,但它也没有成功

我们在哪里做错了?

c shell coredump arm linux-kernel

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

如何自动运行ulimit -c unlimited

我试图从我的rootfs提供对coredump文件生成的支持,我已经用"ulimit -c unlimited"命令和"*hard core -1"修改了/ etc/limits文件,现在当我给kill -6 $$时,期待核心文件生成,但要获得此核心文件必须显式运行ulimit -c unlimited.

但是我想让它自动发生,不需要在shell中再次运行ulimit -c unlimited.

任何人都可以告诉我,为了发生同样的事情,我必须做出哪些改变

c linux coredump rootfs ulimit

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

多个中断处理程序如何共享地址0x00000018

我正在阅读关于如何在ARM中处理中断并且知道何时任何硬件中断到达地址0x00000018的指令被执行,这通常是跳转到受尊重的中断处理程序,但是对于不同的模块可能有许多中断处理程序.

那么,这些不同的处理程序如何映射到地址0x00000018?

另外,arm cpu如何知道中断提升是irq或fiq,谁决定它以及哪个设备引发了中断,如何映射到这个中断的受尊重的处理程序.

任何机构都可以指向一个简单的中断处理程序代码,我可以看到所有中断处理程序的作用吗?

arm linux-device-driver linux-kernel interrupt-handling

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

在ARM程序集中设置irq_handler

我是ARM新手,了解ARM中的中断处理.我已经了解了如何在ARM中设置IRQ处理程序,但不确定如何在ARM程序集中编写它.以下是我对设置IRQ处理程序的理解.

_IRQ_HANDER:

1)SUB lr, lr, #4(不知道它做了什么).

2)在IRQ模式下应该设置单独的堆栈.我知道在x86中我们设置了如下堆栈:

push ebp
mov esp,ebp
sub esp,8
Run Code Online (Sandbox Code Playgroud)

这将重新产生8个字节的堆栈空间.

但不确定我在ARM中如何做同样的事情?

3)存储非存储寄存器,我们可以这样做:

  STMFD !sp {r13,r14}
Run Code Online (Sandbox Code Playgroud)

4)复制CPSRSPSR(我怎么做ARM组装?)

5)转到处理器IRQ模式(我在ARM组件中可以这样做).

6)下一步是什么?

我们需要提供PIC的基址吗?

我正在使用ARMV7架构.

assembly arm interrupt-handling arm7

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

为什么地址类型被转换为char*?

我正在阅读其中一个实现,找出变量的大小而不使用sizeof()以下是实现

int i = 1;
size_t size = (char*)(&i+1)-(char*)(&i);
printf("%zi\n", size);
Run Code Online (Sandbox Code Playgroud)

但我不明白为什么varibale i的地址类型被转换为(char*)而不是(int*).

任何一个可以帮助我理解这种类型的种姓是如何工作的吗?

c

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

C代码下面是否有效?

在阅读帖子时,我遇到了以下代码并根据帖子输出此代码是一个错误说:

数组元素不能是自动变量的地址.它可以是静态或外部变量的地址.

 #include<stdio.h>
 int main()
 {
 int a=5,b=10,c=15;
 int *arr[]={&a,&b,&c};
 printf("%d",*arr[1]);
 return 0;
 }
Run Code Online (Sandbox Code Playgroud)

但是当在MinGW和在线编译器上运行此代码时,它可以正常运行而不会出现任何错误.

所以想知道这是完全有效还是没有?

c

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

我从哪里获得x86的32位Linux内核源代码

我是Linux Kernel的新手,想要为x86 arcthitecture提供32位Linux内核源码,但是当我从kernel.org下载它时,它给了x86_64的源代码,这不是我所需要的.我正在寻找3.4.28版本.

或者我必须仅使用x86_64源构建32位x86 Linux.

linux linux-kernel

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