草庐IT

libc6-dev-i

全部标签

linux - create/dev/fakeDevice 支持读、写和ioctl

我有一个在嵌入式设备(x86,最近的linux)上运行的软件。为了简化开发、使用自动化测试等,我想在我的主机系统上运行它。通过对构建系统进行一些调整,代码编译得很好。下一步将是创建“虚拟设备”。该应用程序不使用任何类型的库,而是通过读取、写入和ioctl调用直接与多个设备通信。这些设备代表具有自定义协议(protocol)的自定义硬件。要创建虚拟环境,我需要响应此调用。一种可能的方法是:为每个需要的设备创build备驱动程序(/dev/deviceA,/dev/deviceB,/dev/deviceC,...)创建另一个设备驱动程序与用户空间通信(例如,/dev/deviceSimul

c++ - 如何使用 linux perf 获取 libc6 符号(例如 _int_malloc)的调用父项?

我正在使用linuxperf分析一个C++应用程序,并且我使用GProf2dot得到了一个很好的控制流图.但是,C库(libc6-2.13.so)中的一些符号占用了总时间的很大一部分,但没有边。例如:_int_malloc占用了8%的时间,但没有调用parents。__strcmp_sse42和__cxxabiv1::__si_class_type_info::__do_dyncast一起占用了大约10%的时间,并且调用者的名字是0,它有调用者2d6935c、2cc748c和没有调用者的6。因此,我无法仅使用perf找出哪些例程负责所有这些分配和动态转换。但是,似乎其他符号(例如mal

c++ - 如何使用 linux perf 获取 libc6 符号(例如 _int_malloc)的调用父项?

我正在使用linuxperf分析一个C++应用程序,并且我使用GProf2dot得到了一个很好的控制流图.但是,C库(libc6-2.13.so)中的一些符号占用了总时间的很大一部分,但没有边。例如:_int_malloc占用了8%的时间,但没有调用parents。__strcmp_sse42和__cxxabiv1::__si_class_type_info::__do_dyncast一起占用了大约10%的时间,并且调用者的名字是0,它有调用者2d6935c、2cc748c和没有调用者的6。因此,我无法仅使用perf找出哪些例程负责所有这些分配和动态转换。但是,似乎其他符号(例如mal

linux - 使用/dev/tcp 而不是 wget

为什么这样做:exec3/dev/tcp/www.google.com/80echo-e"GET/HTTP/1.1\n\n">&3cat这失败了:echo-e"GET/HTTP/1.1\n\n">/dev/tcp/www.google.com/80cat有没有办法在不使用wget、curl或其他一些库的情况下在一行中完成此操作? 最佳答案 第二个片段失败,因为它打开了两个单独的TCP套接字。echo连接到www.google.com并写入HTTP请求;然后第二行打开另一个连接并尝试从该套接字读取。第二个套接字只是阻塞,因为Googl

linux - 使用/dev/tcp 而不是 wget

为什么这样做:exec3/dev/tcp/www.google.com/80echo-e"GET/HTTP/1.1\n\n">&3cat这失败了:echo-e"GET/HTTP/1.1\n\n">/dev/tcp/www.google.com/80cat有没有办法在不使用wget、curl或其他一些库的情况下在一行中完成此操作? 最佳答案 第二个片段失败,因为它打开了两个单独的TCP套接字。echo连接到www.google.com并写入HTTP请求;然后第二行打开另一个连接并尝试从该套接字读取。第二个套接字只是阻塞,因为Googl

linux - 从/dev/block/mmcblk0 和/dev/block/mmcblk0p1 读取的区别

从/dev/block/mmcblk0读取返回旧数据,而从/dev/block/mmcblk0p1读取返回最新数据。我的问题是,如果数据写入/dev/block/mmcblk0,linux是否会维护备份?这是因为我能够通过读取该节点来读取SD卡的旧内容。 最佳答案 Linux内核中的mmc子系统以mmcblkXpY格式注册设备节点。在Linux内核中注册的每个mmc设备都有自己的mmc设备号X。特定设备上的每个分区都有自己的编号Y挂载指向分区的设备节点后,可以执行正常的文件I/O。另请注意,除非/dev/mmcblkX设备上存在有效

linux - 从/dev/block/mmcblk0 和/dev/block/mmcblk0p1 读取的区别

从/dev/block/mmcblk0读取返回旧数据,而从/dev/block/mmcblk0p1读取返回最新数据。我的问题是,如果数据写入/dev/block/mmcblk0,linux是否会维护备份?这是因为我能够通过读取该节点来读取SD卡的旧内容。 最佳答案 Linux内核中的mmc子系统以mmcblkXpY格式注册设备节点。在Linux内核中注册的每个mmc设备都有自己的mmc设备号X。特定设备上的每个分区都有自己的编号Y挂载指向分区的设备节点后,可以执行正常的文件I/O。另请注意,除非/dev/mmcblkX设备上存在有效

linux - 为什么 "cat/dev/urandom"挂起我的 bash 脚本?

我正在使用以下行生成随机脚本:exportMY_VAR="nxf-$(cat/dev/urandom|LC_ALL=Ctr-dc'a-zA-Z0-9'|fold-w24|head-n1)"这工作正常,但是当我将它包含在BASH脚本中并执行它时,脚本执行挂起。进程树显示以下进程:4045?S0:00bash.command.run4046?R22:38\_cat/dev/urandom4047?S1:03\_tr-dca-zA-Z0-94048?S0:34\_fold-w24urandom似乎永远不会退出。为什么会这样? 最佳答案 你

linux - 为什么 "cat/dev/urandom"挂起我的 bash 脚本?

我正在使用以下行生成随机脚本:exportMY_VAR="nxf-$(cat/dev/urandom|LC_ALL=Ctr-dc'a-zA-Z0-9'|fold-w24|head-n1)"这工作正常,但是当我将它包含在BASH脚本中并执行它时,脚本执行挂起。进程树显示以下进程:4045?S0:00bash.command.run4046?R22:38\_cat/dev/urandom4047?S1:03\_tr-dca-zA-Z0-94048?S0:34\_fold-w24urandom似乎永远不会退出。为什么会这样? 最佳答案 你

c - LINUX:是否可以编写不依赖 libc 库的工作程序?

我想知道我是否可以用C编程语言编写一个可执行的程序,尽管不使用单个库调用,例如甚至没有exit()?如果是这样,它显然根本不依赖于库(libc、ld-linux)。 最佳答案 我怀疑你可以写这样的东西,但最后需要有一个无限循环,因为你不能要求操作系统退出你的进程。你不能做任何有用的事情。我们从编译一个ELF程序开始,查看ELF规范并一起制作程序头、程序段和程序所需的其他部分。内核将加载您的代码并跳转到某个初始地址。你可以在那里放置一个无限循环。但是如果不了解一些汇编程序,无论如何从一开始就是没有希望的。start.Sglibc使用的