小编Sha*_*baz的帖子

如何打开.a文件

我有一点问题:我必须打开一个具有.a扩展名的链接器文件.我使用Dev-C++.

c++ linker file .a

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

通过haskell传递void*

我正在使用一个使用haskell库(pandoc)来完成一些工作的C库(libpandoc).C库为haskell包装器回调提供读写数据.典型的回调,我也想发送一个,void *user_data以便回调不必依赖于全局变量.

然而,在互联网上搜索,我似乎无法弄清楚如何将Haskell传递给void *变量.

还有就是CString的是一个char *(并最终被用来作为一种解决方法,但它不是那么好)和普通PTR这使得指针出来的东西.但是,这些东西似乎不包括void(这也是可以理解的).看看Foreign.C我没有看到任何有用的东西.

我的问题是,我可以使用什么类型将这样的函数传递给Haskell?

int func(char *buffer, void *user_data);

...

that_haskell_function(..., func, my_data);
Run Code Online (Sandbox Code Playgroud)

c haskell

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

如何在不指定类型的情况下在C中打印值,就像在C++中使用"cerr <<(A)<< endl"一样?

在C++中,有

#define DEBUG(A) cerr << (A) << endl;
Run Code Online (Sandbox Code Playgroud)

我可以发送任何东西,它可以打印出来.但是,在C中,我必须用%d,%c或%s等指定它的类型.但我不想一直写它的类型,我想使用fprintfcerr.我怎样才能做到这一点?

例如:在C中

#define DEBUG(A) X // X is what I want to write 
...
// in function, when I put
DEBUG(5);          // I just want to print 5 
// or, with same statement, when I say 
DEBUG('a');        // output : a
Run Code Online (Sandbox Code Playgroud)

c c++

16
推荐指数
4
解决办法
829
查看次数

在Vim中移动文件

有没有办法在Vim中移动文件?我在Vim中打开了一个文件foo/bar.txt.我知道有两种方法来移动这个文件:

第一解决方案

  1. 删除缓冲区 :bd bar.txt
  2. 用shell执行shell上的移动 mv foo/bar.txt foo/bar2.txt
  3. 用vim加载文件 :e foo/bar2.txt

二解决方案:

  1. 关闭Vim,使所有缓冲区关闭.
  2. 在shell上执行移动...
  3. 启动Vim并加载文件.

但这两种解决方案令人尴尬.我知道,有一个用于重命名文件vim-enuch的插件,但是没有Vim方式来执行这样的基本功能吗?

vim

16
推荐指数
3
解决办法
9362
查看次数

从谷歌搜索下载前1000个图像

我做了一些搜索谷歌图片

http://www.google.com/search?hl=en&q=panda&bav=on.2,or.r_gc.r_pw.r_cp.r_qf.,cf.osb&biw=1287&bih=672&um=1&ie=UTF-8&tbm=isch&source=og&sa = N&标签=无线&EI = qW4FUJigJ4jWtAbToInABg

结果是成千上万的照片.我正在寻找一个将下载第一批n图像的shell脚本,例如1000或500.

我怎样才能做到这一点 ?

我想我需要一些高级正则表达式或类似的东西.我尝试了很多东西,但无济于事,有人可以帮我吗?

regex shell uri image

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

如何在C中将void指针转换为char指针

好吧,这对我来说太麻烦了.我只是不知道这个任务有什么问题:

void *pa; void *pb;
char *ptemp; char *ptemp2; 

ptemp = (char *)pa;
ptemp2 = (char *)pb;
Run Code Online (Sandbox Code Playgroud)

任何人都可以告诉我为什么我收到此错误:

错误:从'void*'无效转换为'char*'

c pointers void-pointers

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

在内核中处理线程的正确方法?

我已经看到了各种各样的分散信息,但我似乎无法得到最终答案.你如何清理内核中的僵尸线程?

为了确保并在内核中生成处理线程的最终正确方法,我想更广泛地提出这个问题.如何在Linux内核中创建,终止和清理线程?

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

thread_func:
    exited = 0;
    while (!must_exit)
        do stuff
    exited = 1;
    do_exit(0)

init_module:
    must_exit = 0;
    exited = 1;
    kthread_run(thread_func, ...)    /* creates and runs the thread */

cleanup_module:
    must_exit = 1;
    while (!exited)
        set_current_state(TASK_INTERRUPTIBLE);
        msleep(1);
    /* How do I cleanup? */
Run Code Online (Sandbox Code Playgroud)

我发现清理解决方案最接近的是release_task,但我没有找到任何关于它的讨论.我想象,因为线程功能kthread_create,kthread_run等等,应该有一个kthread_joinkthread_wait,但是没有.do_wait似乎也有可能,但它不需要struct task_struct *.

此外,我不确定是否do_exit是一个好主意,或者如果有必要的话.有人可以提出如何创建,终止和清理kthread的最小草图吗?

c multithreading zombie-process linux-kernel

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

如何为html表行提供链接名称?

我有一个表,每行解释一些东西(输入命令).在另一个地方,我说从这个输入命令的状态,你去其他状态.我想要做的是链接that input command到表的适当行.想象一下这样的事情:

...link to row number <a href="#row2">2</a>...

<table ...>
    <tr>
        <td>command</td>
        <td>description</td>
    <tr>
    <tr>
        <a name="row1"></a>
        <td>A</td>
        <td>input A</td>
    <tr>
    <tr>
        <a name="row2"></a>
        <td>B</td>
        <td>input B</td>
    <tr>
</table>
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,我尝试<a name="row2"></a><tr>块中放置一个但是没有用(它将我带到了表的顶部)

我想做什么?

html hyperlink

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

基于c头文件在c文件中重新排序功能

是否有任何工具可以根据自动重新排序.c文件.h

例如, foo.h

void function1();
void function2();
void function3();
Run Code Online (Sandbox Code Playgroud)

foo.c

void function2(){}
void function1(){}
void function3(){}
Run Code Online (Sandbox Code Playgroud)

我可以把它重新排序吗?

void function1(){}
void function2(){}
void function3(){}
Run Code Online (Sandbox Code Playgroud)

顺便说一句,我在Ubuntu中使用Vim.

c header-files

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

为什么git ls-files --ignore需要排除模式?

在命令中使用排除模式的要求背后的逻辑是什么git ls-files --ignored

来自git help ls-files:

-i, --ignored

仅显示输出中的忽略文件.在索引中显示文件时,仅打印与排除模式匹配的文件.显示"其他"文件时,仅显示与排除模式匹配的文件.

git

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