小编Met*_*est的帖子

如何将文件中声明的所有 bash 变量导出为环境变量?

假设我有一个vars.txt这样的 txt 文件。

VAR1=32
VAR2=47
VAR3=78
Run Code Online (Sandbox Code Playgroud)

现在,如果我简单地这样做source vars.txt,这些变量将不会导出为环境变量,因为我没有在它们前面加上export.

所以,我的问题是,有没有一种方法可以导出所有这些变量,而不必在文件中添加导出前缀?

bash export environment-variables

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

从目标文件内联函数

我想内联一些我没有代码的功能。它们存在于目标文件中。有办法用gcc吗?

换句话说,我想在将自己的代码文件与包含那些功能的目标文件链接时执行这些功能的内联。

c gcc

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

在哪个级别应用了编译器优化?

我的问题是哪个级别的编译器应用优化.它是在不同的代码文件级别?如果是这种情况,那么它是否比在整个代码中应用它更低效?其次,当一个源文件没有进行优化编译然后与一个-O3级优化链接时会发生什么?

我特别感兴趣知道gcc如何处理这些事情.

c compiler-construction optimization gcc

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

在gcc中是否有64位的定义

可能重复:
在C中检测64位编译

我希望我的程序在32位和64位Linux操作系统上运行.所以在我的C代码中,我希望编译器知道何时编译32位和64位架构.所以,我需要这样的东西

#ifdef X64
...
#else
...
#endif
Run Code Online (Sandbox Code Playgroud)

在gcc中有没有这样的定义?

c 32bit-64bit

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

这个Makefile有什么问题

我有以下makefile.如果我这样做make USE_44=1 USE_O=1,我收到以下错误.

makefile:21: *** missing separator,第21行是elif ($(USE_S), 1).

请注意,如果我这样做make USE_44=1,它编译得很好.

有人能告诉我这里的问题是什么,我该如何解决?

USE_44 = 0
USE_IO = 0
USE_O = 0
USE_S = 0
USE_F = 0
USE_I = 0
USE_WL = 0

ifeq ($(USE_44), 0)
    CXX = g++
else
    CXX = g++44
endif

CXXFILES = main.cpp jacobcalc.cpp linkup.cpp slave1.cpp jacobcalc2.cpp slave2.cpp laplacalc.cpp multi.cpp subblock.cpp replication.cpp hash.cpp

CXXFLAGS := -std=c++0x -O3 -o

ifeq ($(USE_O), 1)
    CXXFLAGS += progo -DWITHOUT_LOCKS -DWITHOUT_BARRIERS -DWITHOUT_MPROTECT 
elif ($(USE_S), …
Run Code Online (Sandbox Code Playgroud)

c makefile

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

将 C++0x 的 atomic<int> 作为非原子访问

我的类型程序中有一个原子变量atomic<int>。在某些地方,我不需要以原子方式访问其中的值,因为我只是检查它是否为 0。换句话说,在这些情况下,我想避免在原子访问时发生的总线锁定等开销。

如何以非原子方式访问原子变量。使用 (int) 对其进行类型转换是否足够,如下所示?如果没有,我认为,我该怎么做?

atomic<int> atm;
int x;
........
x = (int)atm; // Would this be a non-atomic access, no bus locking et all?
Run Code Online (Sandbox Code Playgroud)

c++ atomic

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

在Linux中使用Signal发送信息

当从一个进程向另一个进程发送信号时,我还想发送long类型的值.那可能吗?我正在使用SIGUSR1.

c linux signals

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

处理TLB未命中

我想查看我的程序正在访问哪些页面.现在,一个方法是使用mprotect与SIGSEGV处理程序,记下其正在访问的网页.但是,这涉及为我感兴趣的所有存储器页面设置保护位的开销.

想到的第二种方法是在开始时使翻译后备缓冲区(TLB)无效,然后记下未命中.每次未命中时,我都会记下寻址的内存页面,因此请记下来.现在的问题是如何处理Linux程序的用户空间中的TLB未命中.

如果你知道甚至比TLB错过或阻止记下脏的内存页面更快的方法,请告诉我.另外,我只想要一个x86的解决方案.

c linux x86 caching tlb

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

对于64位操作系统,内存泄漏是否仍然相关?

如果您有64位操作系统,则您的地址空间几乎不受限制.所以我的问题是,在这样的系统中,释放内存的重要性是多少?即使你有4 GB的有限内存,在需求分页方案中(只有在触摸时才会引入内存),与释放内存相比,你会得到的开销很小,我想是一些额外的页面交换,因为内存你会长时间不碰,会自动换掉.我在这里错过了什么吗?或者我的论点有效吗?

实际上,如果它不是一个很大的性能影响,那么我认为它对C/C++程序员来说是一件好事,因为内存泄漏不再是一个重要的问题需要处理!

c linux gcc memory-management x86-64

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

使用llvm提示编译器

我正在研究一种采用LLVM IR并修改它的工具.我有兴趣允许程序员给编译器提示.例如,他可以提示特定循环是计算密集型的.为此,我想到的一件事是使用一个pragma.所以我的问题是,我们如何让pragma工作?我可以在LLVM IR中获得编译指示信息吗?这类任务有哪些选择?

c compiler-construction llvm clang

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