小编Joh*_*ski的帖子

是否有一些Unix util允许我用几乎没有打字的方式grep多个文件?

现在我做了很多:

find * | grep py$ | xargs grep foo
Run Code Online (Sandbox Code Playgroud)

我记得有一些工具以较少的打字方式做到这一点,但是哪个?

更新:如果可能,我更喜欢使用Bash shell.

unix grep text find

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

指针写入不是原子的最常见配置是什么?

我对多线程很感兴趣.该领域有很多陷阱,例如,无法保证指针写入是原子的.我明白这一点,但想知道实际情况下最流行的当前配置是什么?例如,在我的Macbook Pro/gcc上,指针写入肯定似乎是原子的.

c c++ multithreading atomic

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

如何在不调用默认构造函数的情况下创建C样式数组?

我正在编写一个内存管理模板类,我想在其中创建一个固定大小的C风格数组,作为堆.我将对象存储在一个数组中,如下所示:

T v[SIZE];
Run Code Online (Sandbox Code Playgroud)

因为这只能作为可以容纳T对象的堆的角色,所以我不希望为数组中的每个对象自动调用T默认构造函数.

我想到了像这样定义堆的解决方案:

char v[SIZE * sizeof(T)];
Run Code Online (Sandbox Code Playgroud)

......但这会给我一些对齐问题.

有没有更好的方法来实现这一目标?

ADD:由于我有特殊的运行时要求,因此该类不对全局堆进行任何分配是至关重要的.

ADD 2:SIZE是一个模板参数,在编译时已知.

c++ constructor memory-management

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

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

共识价值

在阅读并发编程时,我在比较和交换以及比较和设置操作中遇到了共识数这个术语.我无法理解这个术语的含义,任何人都可以解释一下吗?

谢谢!!

concurrency multithreading concurrent-programming compare-and-swap

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

覆盖虚拟成员函数时,为什么覆盖函数总是变为虚拟?

我写这样的时候:

class A {
    public: virtual void foo() = 0;
}

class B {
    public: void foo() {}
}
Run Code Online (Sandbox Code Playgroud)

... B :: foo()也变为虚拟.这背后的理由是什么?我希望它的行为类似于finalJava中的关键字.

补充:我知道这样的工作方式和vtable如何工作:)问题是,为什么C++标准委员会没有留下开放直接调用B :: foo()并避免vtable查找.

c++ virtual inheritance overriding

4
推荐指数
3
解决办法
731
查看次数

确保相同的配置用于库和可执行文件

假设我正在将库分发为二进制文件.它有两个版本,调试和发布.调试和发布彼此不兼容,因此如果用户构建发布可执行文件,则他/她必须与发布库链接.

如果库和可执行版本之间存在不匹配,那么目前会出现一些很难弄清楚的细微错误.我希望显示一个非常明确的错误消息,通知不匹配,最好是在链接时.

实现这一目标的好方法是什么?

c c++ versioning

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

首先发生什么,隐式转换为返回值或破坏局部变量?

我只是碰到了下面的代码,看起来像我一样腥(详细遗漏以保护无辜者):

std::string MakeString()
{
    char buf[12] = { 0 };
    return &buf[0];
}
Run Code Online (Sandbox Code Playgroud)

这样可以还是不安全?是否保证在buf超出范围之前创建std :: string?

c++

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

在main()之前保护类不被实例化

我想确保在输入main()之前从未实例化我的C++类.有没有办法实现这个目标?

-

一些澄清:

我正在编写嵌入式应用程序.我的类必须是静态的(驻留在BSS中),但是在实例化时,它需要一些在main()开始时初始化某些东西之前不可用的资源.所以我想把它变成迈耶斯单身人士.理想情况下,我想做一些断言,确保在main()之前永远不会调用MyClass :: instance().

c++ singleton

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

一个单周期指令是否需要一个周期,即使RAM很慢?

我使用的是嵌入式RISC处理器.我有一个基本的问题是搞清楚.

CPU手册清楚地说明指令ld r1, [p1](在C:r1 =*p1中)需要一个周期.寄存器r1的大小是32位.但是,存储器总线只有16位宽.那么如何在一个周期内获取所有数据呢?

memory cpu cpu-cycles

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

如何用C语言的内存地址映射函数名和行号?

如何在GCC中将函数名称和行号映射回内存地址?

即假设C语言的原型:

void func() {
  // Get the address of caller , maybe this could be avoided
  MemoryAddress = get_call_address();

  // Which line from source code is executing , which calls func()
  LineNumber = get_lineno_from_symbol ( &MemoryAddress );

  // Grab the name who calls func()
  FunctionName = get_func_from_symbol ( &MemoryAddress );
}
Run Code Online (Sandbox Code Playgroud)

那么GCC提供的任何现有API都可以满足我的要求吗?

非常感谢你的回应;-P

c linux reflection debugging gcc

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

通常认为R5RS的哪些部分不值得实施?

我一直在寻找好的小型Scheme实现.我注意到他们声称遵循"几乎所有"R5RS是非常平常的,但从来都不是全部.R5RS的哪些部分通常被认为太难/不值得?它们被认为是R5RS的错误吗?

scheme

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