ICode9

精准搜索请尝试: 精确搜索
  • linux – uname坏了:我如何确定当前运行的内核?2019-08-09 07:54:27

    > uname -r FATAL: kernel too old > cat /proc/cmdline FATAL: kernel too old / boot中有3个.vmlinuz-linux文件.如何确定当前正在运行的内核? 请注意,我在有限的环境中使用最小的shell运行.我也尝试过: > sh -c 'read l < /proc/version; echo $l' FATAL: kernel too old > dd

  • 在linux上使用“>>”时,bash是否在O_APPEND中打开文件?2019-08-08 16:51:45

    如果我们使用echo 1234>> some-file然后Documentation说输出是附加的. 我的猜测是,如果某个文件不存在,那么O_CREAT将创建一个新文件.如果>使用了,然后O_TRUNC将截断现有文件. 在>>的情况下: 文件是否会以O_WRONLY(或O_RDWR)打开并寻求结束和写入操作,模拟O_APPEND?或者将文件作为O_A

  • linux – 为什么以及如何运行某些共享库,就像它们是可执行文件一样?2019-08-08 15:52:47

    在32位Linux系统上,调用它 $/lib/libc.so.6 在64位系统上 $/lib/x86_64-linux-gnu/libc.so.6 在shell中,提供如下输出: GNU C Library stable release version 2.10.1, by Roland McGrath et al. Copyright (C) 2009 Free Software Foundation, Inc. This is free software; se

  • linux – 使用调试符号从源代码编译glibc2019-07-29 17:52:48

    我需要使用调试符号从源代码编译glibc. 1.我在哪里指定’-g’选项 2.我以后如何制作一个示例代码链接到这个特定的glibc而不是我系统上安装的那个?解决方法: I need to compile glibc from source with debug symbols 你将很难编译没有调试符号的glibc.默认的./configure&& make将

  • 理解glibc2019-07-29 11:50:46

    我想将我的程序分发为二进制文件,而不是源代码形式.我有两个测试系统:较旧的Linux(带有glibc 2.10的openSUSE 11.2)和最近的一个(带有glibc 2.15的LinuxMint 13).现在,当我使用glibc 2.15在LinuxMint系统上编译我的程序,然后尝试使用glibc 2.10在openSUSE系统上启动二进制文件时,我

  • linux – 管道上的非阻塞读取2019-07-27 15:51:44

    可以在管道上进行非阻塞I / O吗? fcntl无法设置O_NONBLOCK. Linux编程接口的页面918包括一个表’从管道读取n个字节或FIFO(p)’的语义.此表列出了管道和FIFO的行为,其中一列标题为O_NONBLOCK已启用?这意味着您可以在管道上设置O_NONBLOCK标志.它是否正确?以下代码无法设置标志,但fcntl

  • linux – dlopen不尊重`RTLD_LOCAL`?2019-07-27 15:51:25

    我有A.so,它在自己的目录下链接到特定版本的libstdc .so.6(通过设置为$ORIGIN的rpath). 如果我独自完成A.so,它运作正常. 如果我在RTLD_LOCAL模式下运行我的系统的libstdc .so.6(它的版本不同),然后dlopen A.so OSError: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIB

  • 被调用对象不是函数或函数指针2019-07-23 11:51:01

    我有以下代码. typedef pid_t (*getpidType)(void); pid_t getpid(void) { printf("Hello, getpid!\n"); getpidType* f = (getpidType*)dlsym(RTLD_NEXT, "getpid"); return f(); // <-- Problem here } 编译器抱怨被叫对象’f’不是函数.这里发生了什么?我没有以正

  • C中的IPv6地址复制优化2019-07-23 10:51:26

    因为memcpy现在应该高度优化,使用显式循环展开优化Ipv6地址的副本是否仍然有意义? #include <netinet/in.h> struct in6_addr IP_1; struct in6_addr IP_2; ; ; IP2.__in6_u.__u6_addr32[0] = IP1.__in6_u.__u6_addr32[0]; IP2.__in6_u.__u6_addr32[1] = IP1.__in6_u.__u6_addr32[

  • c – Glibc错误:双重免费或损坏2019-07-23 00:05:54

    我一直在寻找这个错误的含义,它似乎意味着我不止一次地释放同一个对象.我似乎无法弄清楚如何防止这种情况.任何帮助或建议将不胜感激. File(randname) File(a.out) ~File(a.out) ~Directory(randname) ~File(null) ~File() *** glibc detected *** a.out: double free or corrupti

  • -pthread,-lpthread和最小动态链接时间依赖性2019-07-16 05:51:16

    这个answer建议-pthread比-lpthread更可取,因为预定义的宏. 根据经验,-pthread只给我一个额外的宏:#define _REENTRANT 1 它似乎也强制libpthread.so.0作为动态链接时依赖. 当我使用-lpthread进行编译时,只有在我实际调用任何pthread函数时才会添加该依赖项. 这对我来说最好,因为那

  • 如何在C中完成相当于“ulimit -n 400”的操作?2019-07-13 17:50:24

    在开始用C编写的程序之前,我必须运行命令“ulimit -n 400”来提高允许打开文件的数量,但有没有办法在C程序中执行相同的操作? 也就是说,增加该进程允许的打开文件描述符的数量. (我对每个线程限制不感兴趣.) 它是否涉及设置ulimits,然后分叉一个允许有更多打开文件的孩子? 当然,我可

  • linux – 了解C程序中的汇编语言_start标签2019-07-11 11:52:22

    我编写了一个简单的c程序,并尝试使用GDB来调试程序.我理解在main函数中使用以下内容: 进入时 push %ebp mov %esp,%ebp 退出时 leave ret 然后我在_start上尝试了gdb,得到了以下内容 xor %ebp,%ebp pop %esi mov %esp,%ecx and $0xfffffff0,%esp push %eax

  • sqlite3.o: undefined reference to symbol 'dlclose@@GLIBC_2.2.5'2019-07-10 21:00:24

    在pro中添加 #../build/obj/sqlite3.o: undefined reference to symbol 'dlclose@@GLIBC_2.2.5' unix { LIBS += -ldl }

  • linux – 如何构建可靠的工具链2019-07-10 01:50:23

    请指导我完成构建足以构建可引导的linux映像的基本工具链所需的步骤,并讨论为什么应该按照建议的方式完成. 对现有文档的指示也非常感谢.我从Scratch学习了Linux,并且拥有使用特定于分发工具构建Gentoo映像的经验.我还查看了用于为嵌入式设备构建交叉编译工具链的各种工具的文档.

  • 如何引用静态库中声明的变量?2019-07-09 17:51:54

    我正在尝试使用修改过的glibc库. glibc库静态链接到我的代码.我在glibc库中声明了一个新变量(让我们称之为my_libc_var).但是,当我尝试在我的程序中包含该变量时(使用extern关键字ofcourse),我得到未定义的引用错误.我怎么解决这个问题? 在glibc中,变量声明如下. int my_libc_var;

  • c – Glibc 2.7配置错误程序太旧了2019-07-09 01:51:19

    当我在R中加载GenomicFeatures包时,会弹出一条错误消息: Loading required package: IRanges Error in dyn.load(file, DLLpath = DLLpath, ...) : unable to load shared object '/home/caohf/R/x86_64-unknown-linux-gnu-library/2.15/IRanges/libs/IRanges.so': /lib64/lib

  • CentOS 7编译安装gcc 4.9.42019-07-08 22:08:49

    1. 为什么要升级到gcc4.9.x呢? 因为最近在做的一个项目中要用C++11新特性,而在 g++ 4.9 之前,regex 库并不支持 ECMAScript 的正则语法,换句话说,在 g++4.9 之前,g++ 对 C++11 标准库的支持并不完善,为保证本次项目的顺利进行,故将 g++ 版本升级至 4.9 以上。 2. 不是g++,而是gcc? G++

  • C/C++动态链接库重载2019-07-06 04:50:42

    在我的项目中,我需要修改glibc源代码的一些功能. 我只需要修改部分pthread.例如,我在源代码中修改了多线程相关函数,如pthread_create.c或pthread_mutex_lock.c.然后,当我的具体程序运行时,我想指定它在需要使用这些函数时使用修改后的函数,并且它不会影响其他函数.另外,我不想指定

  • Linux底层函数库glibc漏洞核查整改指引2019-07-05 11:00:06

    一、 漏洞概要 近日,Linux底层函数glibc 的 DNS 客户端解析器被发现存在基于栈的缓冲区溢出漏洞。攻击者可借助特制的域名、 DNS 服务器或中间人攻击利用该漏洞执行任意代码,甚至控制整个系统。 二、 漏洞原理 攻击者可在恶意域名服务器创建恶意的DNS域名,诱骗用户访问查找恶意域

  • c – 未知的HZ值2019-07-04 09:38:28

    我收到一条消息,打印出在ARM平台上运行的Linux应用程序(Qt C): Unknown HZ value! (108) Assume 100. 此输出会在不同的应用程序中定期显示,括号中的值不同. 当我从glibc切换到基于eglibc的工具链来构建应用程序,内核和文件系统时,它就开始发生了. 似乎没有造成任何不良影响,至少

  • linux – 如何执行流式字符转换?2019-07-04 00:39:26

    我将数据存储在磁盘上的文件太大而无法存储在主内存中. 我想通过iconv将这些数据从磁盘流传输到数据处理管道,如下所示: zcat myfile | iconv -f L1 -t UTF-8 | # rest of the pipeline goes here 不幸的是,我看到iconv缓冲整个文件在内存中,直到它在输出任何数据之前耗尽.这意味

  • 复制glibc库2019-06-30 06:38:13

    我下载了glibc源代码,修改了标准库的某些部分,然后使用LD_PRELOAD在我的程序中使用了修改过的标准库(以.so文件的形式).但是,当我将.so文件复制到另一台计算机并尝试使用LD_PRELOAD运行相同的程序时,我遇到了分段错误. 请注意,两台计算机都有x86-64处理器.而且,两台电脑都安装了gcc

  • 理解gnu libc的strcmp功能2019-06-27 09:48:29

    这是我在glibc中找到的strcmp函数: int STRCMP (const char *p1, const char *p2) { const unsigned char *s1 = (const unsigned char *) p1; const unsigned char *s2 = (const unsigned char *) p2; unsigned char c1, c2; do { c1 = (unsigned char) *s1++;

  • Linux C标准I / O – 为什么要双重复制2019-06-24 13:49:58

    假设我正确地理解了流程,那么我们想从已打开的FILE流中读取几个字节,让我们说,使用fread: > read syscall会将数据从内核复制到用户空间缓冲区 >用户空间缓冲区(由glibc分配或由setvbuf提供…)将被复制到提供给fread的缓冲区 为什么需要第二步?为什么我可以得到一个指向用户空间缓冲

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有