问题内容: 我总是使用命令来检查文件类型,主要是在编译新项目以确保一切正常之后。 输出类似于以下内容: 我的问题是,由于我的Linux内核已更新到3.0+,为什么它仍然显示它是为旧版本的Linux编译的? 它与命令有关吗,或者我必须做些什么才能针对较新的Linux内核编译项目? 谢谢 问题答案: 文件 在可执行 文件 上显示的内核版本与系统上安装的内核无关。它与程序在构建时链接到的C库匹配。 您的
问题内容: 我想在C 中使用 fork() 创建流程的副本。我不知道如何将参数传递给流程的副本。例如,我想将整数传递给流程副本。 或者我该怎么办,如果我有一个循环,我在其中调用fork()并想将唯一的值传递给进程(例如0 … N) 问题答案: 有趣的是,您产生的每个进程都会自动获取父进程拥有的所有内容的副本,因此,例如,我们想将int传递给两个子进程中的每个,但我希望每个进程都具有与父进程不同的值
问题内容: 在Linux桌面上使用C ++,获得图标,文档描述和与任意文件/文件路径“关联”的应用程序的最佳方法是什么? 我想使用最“规范”的方式在KDE和gnome上查找图标,mime类型/文件类型的描述以及相关的应用程序,我想 避免对命令行的任何“脱壳” 和“低级”例程,以及避免自己重新发明轮子(无需解析mime-types文件等)。 编辑和注释: 嘿,我最初是问有关QT文件信息对象的问题,并
问题内容: 是否总是真的(这是我的理解是对的代名词)是个字节? 我可以依靠吗?如果不是这样,那么对于基于POSIX的操作系统是否正确? 问题答案: 除了之外,标准没有关于任何整数类型的确切大小。通常,在32位系统上为32位,在64位系统上为64位。 但是,该标准并未指定 最小 尺寸。从C标准的 5.2.4.2.1节开始: 1 以下给出的值应被适合用于预处理指令的常量表达式代替。此外,除了和之外,以
问题内容: 当我使用交叉工具链编译C代码时,链接程序将显示警告页面,其中指出我的可执行文件使用硬浮点,而我的libc使用软浮点。有什么不同? 问题答案: 硬浮点使用片上浮点单元。软浮点在软件中模拟一个。区别在于速度。看到两者都在同一目标体系结构上使用,这很奇怪,因为该芯片要么具有FPU,要么没有FPU。您可以使用- msoft-float在GCC中启用软浮点。您可能需要重新编译libc以使用硬件浮
问题内容: 我正在研究K&R C书中的一个示例,该示例要求您实质上构建一个RPN计算器,该计算器通过命令行参数来接受输入。我的解决方案实质上是遍历给定的参数并给出答案,但我注意到了一些问题: 如果我要给乘法字符(星号)不加单引号,则gcc假定它是通配符输入,因此我的输入为 给我输出 用单引号括住星号可解决此问题 我的问题是是否有一种方法可以清理输入内容,以便我的程序不需要将星号用单引号引起来,还是
问题内容: 我正在尝试运行从未知来源的C代码编译的程序。我想确保该程序无论如何都不会损害我的系统。例如,该程序可能在源代码中有类似东西,除非对代码进行彻底检查,否则无法检测到。 我想到了以下两种方法 在VMWare之类的VM中运行它 在Linux上构建Windows exe并在wine上运行 两者都不是很好的解决方案,我无法实现它们的自动化。并且在1的情况下可能会损坏VM。 任何帮助,将不胜感激。
问题内容: 我正在研究需要检测系统关闭的应用程序。但是,我没有找到任何可靠的方式来接收此事件的通知。 我知道在关机时,我的应用会收到一个信号,然后是。我想知道是否有任何方法可以查询a 是否 为关机序列的一部分 ? 有谁知道是否有一种以编程方式查询(C API)的方法吗? 据我所知,系统没有提供任何其他方法来查询即将发生的关机。如果确实如此,那也将解决我的问题。我也一直在尝试,但是更改似乎是瞬时的,
问题内容: 我正在Linux下使用g 在C 中编写一个非常简单的应用程序,并且试图将一些原始字符串作为异常抛出(是的,我知道,这不是一个好习惯)。 我有以下代码(简化): 然后我进入控制台。但是,如果我将文字字符串静态转换为其中一个,或者按预期打印。我的问题是:如果我不想使用静态强制类型转换,我应该捕获哪种类型? 问题答案: 您需要使用而不是。任何东西都不会,也不会抓住。 关于匹配的类型,捕获具有
问题内容: 我需要用C语言修改程序的进程名称。 我精确地说,这不是我要更改的线程的名称。 我想更改程序的名称,但是找到的唯一解决方案是修改的值。 我还找到了的另一个解决方案,但是该解决方案不起作用。 问题答案: 调用和修改之间的区别是: 修改中的更改信息 在中调用更改信息 这意味着您将获得流程发布和的不同名称。 如果在执行ps时期望不同的参数具有相同的进程名称,则可以同时使用它们(即change
问题内容: Linux / x86_64上的GCC 4.7是否具有默认字符编码,通过它可以验证和解码C源文件中字符串文字的内容?这是可配置的吗? 此外,将字符串文字从字符串文字链接到输出的数据部分时,它是否具有默认的执行字符编码?这是可配置的吗? 在任何配置中,源字符编码都可能与执行字符编码不同吗?(那gcc会在字符编码之间进行代码转换吗?) 问题答案: 我不知道这些选项的实际效果如何(不使用at
问题内容: 我知道Java中的程序包级别保护如何工作。我 读 了很多代码(包括很多开源的东西),似乎没人在使用它。整个保护级别对我来说似乎有点不对(我在一周中的任何一天都拥有C#的内部)。 是否存在合法的现实使用案例? 编辑:问这个问题有点太晚了,我意识到我忘了排除包保护实现类的“标准”模式,可能会提供公共接口的实现。每个人都使用这些,正如答复中多次提到的那样。我仍然认为对此问题有很多不错的答复。
问题内容: 当我在由GCC编译的Linux x86_64计算机上编译并运行以下C程序时: 我总是得到的输出为: 等于0x40064c 0x40064c 我知道字符串存储在常量表中,但是与动态分配的内存相比,地址太低了。 与以下程序比较: 两个指针不相等,因为这是两个可以独立操作的数组。 我想知道GCC如何为这两个程序生成代码,以及它们在执行过程中如何映射到内存。由于已经将其记录在文档中,因此很多时
问题内容: 我正在使用低级I / O函数“写入”以我的代码(Linux上的C语言)将一些数据写入磁盘。首先,我将数据存储在内存缓冲区中,然后在缓冲区已满时使用“写入”将数据写入磁盘。那么“写”的最佳缓冲区大小是多少?根据我的测试,更快不是越大,所以我在这里寻找答案。 问题答案: 进行写操作可能是文件系统块大小的倍数,因此可能会有一些优势,尤其是在就地更新文件的情况下。如果向文件中写入的块少于部分块
问题内容: 我正在开发应用程序(用C ++编写),该应用程序在运行时会生成一些机器代码(现在是Linux,x86-64,但我计划在ARM上迁移)。接下来,它将生成的代码存储在内存中,并通过跳转到内存位置来执行它。长期以来,我在分配可执行内存方面遇到问题,但最终我使用以下方法解决了问题: 到目前为止,它是可行的,但是我不确定这是否是执行此类操作的优雅方法。我想知道可执行加载程序是如何做到的? 问题答