小编AIB*_*AIB的帖子

如何用Python解决一对非线性方程?

使用Python解决一对非线性方程的最佳方法是什么?(Numpy,Scipy或Sympy)

例如:

  • x + y ^ 2 = 4
  • e ^ x + xy = 3

解决上述配对的代码片段会很棒

python numpy sympy scipy

60
推荐指数
4
解决办法
8万
查看次数

read()和fread()之间有什么区别?

我正在阅读linux工具badblocks的源代码.他们在read()那里使用这个功能.标准C fread()功能有区别吗?(我不认为这些论点是不同的.)

c file-io file

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

/ proc/meminfo中的条目

我可以理解/ proc/meminfo中包含的大部分信息,如总内存,缓冲区,缓存等.你能告诉我,下面列出的那些不太明显的是什么意思?

  • AnonPages
  • 映射
  • NFS_Unstable
  • 弹跳
  • VmallocTotal
  • VmallocUsed
  • VmallocChunk

如果有人想知道,我在谈论linux命令cat/proc/meminfo的输出

linux memory procfs

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

结合静态库

假设我有三个C静态库,比如libColor.a,它依赖于*libRGB.*a,而后者依赖于libPixel.a.据说库libColor.a依赖于库libRGB.a,因为libColor.a中有一些对libRGB.a中定义的符号的引用.如何将所有上述库组合到一个独立的新libNewColor.a中?

独立意味着新库应该定义所有符号.所以在链接时我只需要给出-lNewColor.新库的大小应该是最小的,即它不应该包含libRGB.a中的任何符号,libColor.a等不使用.我在ar命令中使用了各种选项来试运气(用于创建和更新静态库/档案) ).

c linux static-libraries unix-ar static-linking

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

内核模块的内存使用情况

在尝试估计内核模块(通常是设备驱动程序)消耗的内存量时,我尝试使用size实用程序,该实用程序给出.ko(.bss,.data,.text等)的静态内存区域的大小.所以我希望这些值的总和与插入模块后立即由lsmod命令给出的输出完全相等.

在init()函数中没有执行动态内存分配(kmalloc或vmalloc)以确保它不会导致差异.那么为什么会出现不匹配?

奇怪的是,大多数时候发现不匹配是固定的!

命令输出如下所示

大小chardev.ko

text    data     bss     dec     hex   filename
172     448    1024016 1024636  fa27c chardev.ko
Run Code Online (Sandbox Code Playgroud)

lsmod的

Module  Size    Used by    Tainted: P
chardev 1025040 0 - Live   0xc009d000
Run Code Online (Sandbox Code Playgroud)

linux memory kernel memory-management linux-device-driver

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

没有操作系统的执行

如何将C程序编译为有效的ELF格式(或RAW格式),以便可以在没有任何操作系统的情况下直接从RAM执行?假设存在一个能够将代码加载到RAM中的任何位置并开始在该地址执行的引导加载程序.确切地说,编译器(GCC)标志应该是什么?是否需要地图文件?

欢迎使用示例helloworld应用程序:)

为了详细说明我的观点,
让main()方法成为一个空的无限while循环,以确保不使用OS特定的或标准的库调用.期望的o/p是一个悬念.使用通常的GCC选项,引导加载程序肯定无法加载可执行文件,因为它是无效的ELF格式.但是,通过将-dN选项传递给链接器将使其成为有效的ELF.需要更多编译器/链接器选项才能使其挂起而不会崩溃!这些编译器选项究竟是什么?

file.c:
int main()
{
    while(1);
}
Run Code Online (Sandbox Code Playgroud)

编译
gcc -c -nostdinc -fno-builtin
file.c ld -dN -nostdlib file.o

Bootloader将a.out加载到RAM并执行.

c linux boot bootstrapping bare-metal

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

如何在Python中为变量创建别名?

正常的方式

class A:
    __init__():
     self.a.b.c = 10

    anotherMethod():
      self.a.b.c = self.a.b.c * 10
Run Code Online (Sandbox Code Playgroud)

别名的做法

class A:
    __init__():
     self.a.b.c = 10         
     alias self.aliased = self.a.b.c # Creates an alias 

    anotherMethod():
      self.aliased = self.aliased * 10 # Updates value of self.a.b.c
Run Code Online (Sandbox Code Playgroud)

如何在Python中实现别名?我想要做的是减少由于长变量名称引起的混乱.这是一个多线程环境.所以简单地复制到局部变量是行不通的.

python variables alias

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

对内核的争论

内核是否需要从引导加载程序获取内容.通常内核能够从头开始构建系统,那么为什么它需要来自boot-loader的任何内容?我从内核看过这样的启动消息.

"Fetching vars from bootloader... OK"
Run Code Online (Sandbox Code Playgroud)

那么变量到底是什么?如何从引导加载程序传递变量?是通过堆栈?

linux boot bootstrapping linux-kernel bootloader

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

如何找出对应于矩阵特定特征值的特征向量?

如何找出与特定特征值对应的特征向量?

我有一个随机矩阵(P),其中一个特征值是1.我需要找到对应于特征值1的特征向量.

scipy函数scipy.linalg.eig返回特征值和特征向量的数组.

D, V = scipy.linalg.eig(P)
Run Code Online (Sandbox Code Playgroud)

这里D(值的数组)和V(矢量的数组)都是矢量.

一种方法是在D中进行搜索并在V中提取相应的特征向量.有更简单的方法吗?

python numpy scipy eigenvalue eigenvector

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

声明如何影响逗号运算符?

以下代码无法编译.

int n;
int x=1, n++; //compiler error
Run Code Online (Sandbox Code Playgroud)

错误:在'++'标记之前预期'=',',',';','asm'或' attribute '

如果我们将x的声明分开,程序编译就好了.

int n, x;
x=1, n++;//no error
Run Code Online (Sandbox Code Playgroud)

为什么会这样?

c compiler-errors

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

用GCC 4.5崩溃编译的程序,而GCC 4.4很好

最近我尝试编译并安装ns-2,一个基于C++和Tcl的网络模拟器.

使用一些略微修改的源代码(不用担心,它不会导致崩溃),我可以使用最新的gcc 4.5版本进行编译.

但是当我执行二进制文件时,它会给出以下错误:

$bin/ns
*** buffer overflow detected ***: bin/ns terminated
Run Code Online (Sandbox Code Playgroud)

相同的代码,如果编译与早期的gcc,运行良好.所以,我认为这是由于一些增强功能GCC 4.5.

我该如何处理这个问题?当然用gcc 4.4编译是一个选项,但我想知道出了什么问题:)

更新:

这是使用gdb的完整堆栈跟踪和后跟踪:

$ bin/ns
*** buffer overflow detected ***: bin/ns terminated
======= Backtrace: =========
/lib/x86_64-linux-gnu/libc.so.6(__fortify_fail+0x37)[0x7f01824ac1d7]
/lib/x86_64-linux-gnu/libc.so.6(+0xfd0f0)[0x7f01824ab0f0]
bin/ns[0x8d5b5a]
bin/ns[0x8d56de]
bin/ns[0x841077]
bin/ns[0x842b19]
bin/ns(Tcl_EvalEx+0x16)[0x843256]
bin/ns(Tcl_Eval+0x1d)[0x84327d]
bin/ns(Tcl_GlobalEval+0x2b)[0x84391b]
bin/ns(_ZN3Tcl4evalEPc+0x27)[0x83352b]
bin/ns(_ZN3Tcl5evalcEPKc+0xdd)[0x8334e9]
bin/ns(_ZN11EmbeddedTcl4loadEv+0x24)[0x834712]
bin/ns(Tcl_AppInit+0xb2)[0x8331a5]
bin/ns(Tcl_Main+0x1d0)[0x8ad6a0]
bin/ns(nslibmain+0x25)[0x8330c5]
bin/ns(main+0x20)[0x833254]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xff)[0x7f01823cceff]
bin/ns[0x5bc1a9]
Run Code Online (Sandbox Code Playgroud)

使用GDB并打开符号:

(gdb) bt
#0  0x00007ffff6970d05 in raise () from /lib/x86_64-linux-gnu/libc.so.6
#1  0x00007ffff6974ab6 in abort () from /lib/x86_64-linux-gnu/libc.so.6
#2 …
Run Code Online (Sandbox Code Playgroud)

c++ gcc simulator tcl

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