小编Mag*_*nus的帖子

为什么要使用struct的第一个元素的地址,而不是struct本身?

我刚刚开始工作的另一个代码库,开发人员在复制/比较/设置时始终使用结构的第一个元素的地址,而不是结构本身.这是一个简单的例子.

首先是结构类型:

typedef struct {
    int a;
    int b;
} foo_t;
Run Code Online (Sandbox Code Playgroud)

然后有一个函数可以复制这样的结构:

void bar(foo_t *inp)
{
    foo_t l;
    ...
    memcpy(&l.a, &inp->a, sizeof(foo_t));
    ...
}
Run Code Online (Sandbox Code Playgroud)

我不会以memcpy这种方式写一个调用,我开始怀疑原始开发人员根本没有完全掌握C中的指针和结构.但是,现在我已经在两个不相关的代码库中看到了这个,没有普通开发人员所以我开始怀疑自己.

为什么要使用这种风格?

c struct

59
推荐指数
4
解决办法
3324
查看次数

"打结"的解释

在阅读哈斯克尔有关的东西,我有时会遇到表达"绑结",我想我明白了什么是这样,而不是如何.

那么,对这个概念有什么好的,基本的,简单易懂的解释吗?

haskell functional-programming tying-the-knot

45
推荐指数
2
解决办法
5184
查看次数

iteratee的简介或简单示例?

我发现Oleg关于Iteratee的文档有点难以理解.特别是因为他在Haskell-Cafe的帖子中的一些功能不在iteratee库中(比如enum_file).

有没有对iteratee有一个很好的介绍,通过打开文件/套接字,读取和处理数据等基础知识.

io haskell iterate

26
推荐指数
3
解决办法
3560
查看次数

Vim:基于字符串的来源

我似乎无法在网上的众多Vim脚本教程中找到答案.我想要做的是从环境变量构造脚本的文件名,然后来源它.我想在Vim中做到这一点.

如果我要在shell中执行它,我会做这样的事情:

source ${HOME}/.vim/myscript_${FOO}.vim
Run Code Online (Sandbox Code Playgroud)

我怎么在Vim中做到这一点?

vim

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

关闭进程中的所有打开文件

如何查找进程中的所有打开文件(来自内部)?

fork()(之前exec())之后知道这似乎很有用.

我知道它的存在性getdtablesize()和可移植性sysconf(_SC_OPEN_MAX),但是尝试关闭每个有效的文件描述符似乎效率低下,无论是否有一个打开的文件.(我也意识到过早优化的危险,这更多是关于美学我猜:-)

unix process filehandle

17
推荐指数
3
解决办法
2万
查看次数

Zsh完成资源?

Zsh完成是一个相当复杂的野兽,我发现man-page非常难以阅读,特别是它缺少(简单)所有各种optspec表单等的例子.我还没有设法在网上找到任何东西,所以帮助将是非常感谢.

作为一个例子,这是我目前正在努力解决的问题,并且该zshcompsys手册页没有提供任何澄清.我有

#compdef mtt2

_arguments -s : \
    '-h' '--help' \
    '-V' '--version' \
    ':foobars:(foo bar baz)'
Run Code Online (Sandbox Code Playgroud)

现在,当我输入mtt2 <TAB>我只提供foo,barbaz作为完井,为什么不-h,--help等等,以及?_arguments为了获得所有可能性,我需要传递什么魔力?

zsh tab-completion

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

如何在Gnome中发布Python包的`.desktop`文件和图标(带有distutils或setuptools)?

目前我正在使用自动工具来构建/安装和打包我的项目,但我真的想转向感觉更"pythonic"的东西.

我的项目包括两个脚本,一个模块,两个glade GUI描述和两个.desktop文件.它目前是一个纯粹的python项目,虽然很快就会改变.

看看setuptools,我可以很容易地看到如何处理除.desktop文件之外的所有内容; 他们必须最终进入特定目录,以便Gnome可以找到它们.

使用distuils/setuptools是一个好主意吗?

python packaging gnome setuptools distutils2

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

Git用户在SVN商店,组织我们的回购

我在一家SVN商店工作,但为了在工作中注入一点理智,我使用git-svn.越来越多的同事也看到了光明,现在我们想要在某些情况下完全支持SVN.目前我们每个人都拥有自己的git-svn仓库,但由于差异很大,我们无法真正分享除普通补丁或SVN之外的任何东西.我们应该如何组织我们的回购以允许直接共享(通过git-remote)?

我能想出的唯一方法是使用单个共享git-svn repo,我们将其用作SVN的网关,但这可能有点麻烦 - 如果我们都这样做会好得多可以直接从我们自己的git-svn repos推送到SVN.

编辑:不幸的是我没有SVN服务器的管理员访问权限,因此目前很少使用像subgit这样的解决方案,即使它们很有用.

git git-svn

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

在Linux上查找Win exe所需的DLL(与mingw交叉编译)?

我在Linux上使用MinGW交叉编译到Windows.让工作变得轻而易举.用所需的DLL打包它并不是那么简单.目前的解决方案是在Windows上运行可执行文件并复制DLL,直到它实际运行.

是否有一个Linux工具列出了我的Windows .exe所需的DLL?(类似于lddDependencyWalker 的组合.)

linux dependencies mingw cross-compiling

8
推荐指数
3
解决办法
3112
查看次数

如何在subgit repo中找到SVN修订版?

我正在使用Subgit访问Subversion仓库.它工作得很好,但有时,特别是在与使用普通Subversion客户端访问存储库的用户进行通信时,我真的很想找到特定变更集对应的SVN版本.

我可以使用git在我的本地仓库中找到SVN修订号吗?

git subgit

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