小编Cla*_*bel的帖子

Linux内核的list.h

哪里可以找到linux内核中臭名昭着的list.h?

我记得一下子看到它,我不能再为我的生活找到它.我正在运行一个Windows框,所以如果你能指出我在一个很好的HTTP网站上托管它会很棒:)

谢谢.

c linux

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

条件typedef

如果我有一点点代码......

template <typename _T>
class Foo
{
public:
    typedef const T& ParamType;
    void DoStuff(ParamType thingy);
};
Run Code Online (Sandbox Code Playgroud)

如果这可能是非最佳的sizeof(_T) <= sizeof(_T*).

因此,我希望有条件typedef.如果大小_T小于或等于指针的大小,则只需将其传递给值.否则,通过const引用传递它.这可能吗?我听到所有这些关于模板完成图案的东西,但这让我感到很伤心.

c++ templates

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

正确的提交消息

什么是提交消息?我一直在写它们作为对我所做的事情的解释,但我最近与一位同事写了一个讨论它的原因进行了讨论.哪一个是正确的,还是完全有另一个答案?

注意:我完全不知道是否有一个"正确"的答案.因此,我将其标记为社区维基,并且不会接受答案.Upvotes将决定胜利者:)

version-control commit-message commit

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

读取haskell中的二进制文件

我怎么能写一个像...这样的定义的函数

readBinaryFile :: Filename -> IO Data.ByteString
Run Code Online (Sandbox Code Playgroud)

我已经将Haskell的功能部分缩小了,但是类型系统和monad仍然让我头疼.有人可以写下并解释这个功能对我有用吗?

binary haskell bytestring

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

编写一个简单的邮件服务器

关于创建电子邮件服务器,我将有什么好的起点?

基本上,我想做的是让服务器(如foo.com)为我收到邮件,所以如果我发送电子邮件到(blah@foo.com),它会将电子邮件的内容转储到/ mail/blah /主题,然后将其发送到我的真实电子邮件帐户.

我希望将此作为编程练习,因此链接到RFC等会很不错.重新发明轮子是学习轮子的好方法.

编辑:随意适当地重新录制.

language-agnostic email network-programming smtp

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

遵循多线程环境中的指针

如果我有一些看起来像这样的代码:

typedef struct {
    bool some_flag;

    pthread_cond_t  c;
    pthread_mutex_t m;
} foo_t;

// I assume the mutex has already been locked, and will be unlocked
// some time after this function returns. For clarity. Definitely not
// out of laziness ;)
void check_flag(foo_t* f) {
    while(f->flag)
        pthread_cond_wait(&f->c, &f->m);
}
Run Code Online (Sandbox Code Playgroud)

C标准中是否有任何内容阻止优化器将check_flag重写为:

void check_flag(foo_t* f) {
    bool cache = f->flag;
    while(cache)
        pthread_cond_wait(&f->c, &f->m);
}
Run Code Online (Sandbox Code Playgroud)

换句话说,每次循环时生成的代码是否必须跟随f指针,或者编译器是否可以自由地取消引用?

如果它可以自由拉出来,有什么办法可以防止这种情况发生吗?我需要在某处撒一个volatile关键字吗?它不能是check_flag参数,因为我计划在这个结构中有其他变量,我不介意编译器这样优化.

可能我不得不诉诸:

void check_flag(foo_t* f) {
    volatile bool* cache …
Run Code Online (Sandbox Code Playgroud)

c multithreading pthreads c99 compiler-optimization

6
推荐指数
2
解决办法
238
查看次数

原生C++和C#互操作

所以我正在构建一个必然会使C++工作的应用程序,但是MFC/ATL对我来说太乱了,所以我有一个很好的想法,就是用本机C++中的所有"思考"代码和C#中所有漂亮的UI代码.但问题是两者之间的互操作性.在我对此过于沉溺之前,我想知道这是否是一个已解决的问题,并且有一个非常好的方法来做到这一点.请注意,我不想在同一模块中混合使用逻辑和显示,因为它会产生恼人的高耦合.

这是我到目前为止所拥有的:

在此输入图像描述

那么告诉我,它可以做得更好吗?

.net c# c++ interop

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

OpenGL中的矩阵堆栈有什么意义?

为什么我会使用OpenGL的矩阵堆栈(而不是包装我自己的矩阵类而只是使用它)?我不确定为什么这么简单的任务会如此复杂.它有一些特殊用例吗?

如果没有必要,有什么好的替代品呢?

c opengl

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

在x + y中获取"携带"

可能重复:
在C/C++中检测整数溢出的最佳方法

如果我有一个表达式x + y(在C或C++中)where xy都是uint64_t导致整数溢出的类型,我如何检测它(进位),位置溢出多少,而不是另一个变量,然后计算余数?

c c++ math

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

将已排序的文件与fifos组合在一起

我在目录中有一些已排序,压缩的文件.如何将其中一些组合成另一个已排序的gzip文件?现在我正在使用显式的fifos.有没有办法在没有bash的情况下做到这一点?我是一个bash noob,所以请原谅我缺乏风格.

#!/bin/bash
# Invocation ./merge [files ... ]
# Turns an arbitrary set of sorted, gzipped files into a single sorted, gzipped file,
# printed to stdout. Redirect this script's output!
for f in $@
do
    mkfifo $f.raw
    gzcat $f > $f.raw &
    # sort -C $f.raw
done
sort -mu *.raw | gzip -c # prints to stdout.
rm -f *.raw
Run Code Online (Sandbox Code Playgroud)

我想把它转换成像......

sort -mu <(gzcat $1) <(gzcat $2) <(gzcat $3) ... | gzip -9c # prints to stdout.
Run Code Online (Sandbox Code Playgroud)

......但不知道怎么做.我是否需要将参数构建为字符串?这有什么神奇的捷径吗?也许 …

bash performance fifo

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