小编Dav*_*d X的帖子

如何从git存储库中完全删除文件?

我最近注意到我的文本编辑使用的项目文件(以及其他一些垃圾)都添加了项目的git存储库.由于它们实际上不是项目的一部分,我想删除它们,但git rm不会从存储库中删除旧版本,我找不到任何看起来很有希望的东西.

git

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

如何在Python中拖尾日志文件?

我想在Python中输出tail -F或类似的东西,而不会阻塞或锁定.我发现一些真正的旧代码到做在这里,但我想一定有更好的方法或通过图书馆现在做同样的事情.谁知道一个?

理想情况下,tail.getNewData()每次我想要更多数据时,我都会有类似的东西.

python tail

65
推荐指数
9
解决办法
11万
查看次数

如何生成静态链接的可执行文件?

我正在尝试使用Rust创建一个静态可执行文件.我不是试图静态链接特定的库,我试图创建一个根本不使用动态链接的可执行文件.我有以下(否则工作)测试:

$ cat hello.rs
fn main()
    {
    print!("Hello, world!\n");
    }
$ rustc hello.rs -o hello
$ file hello
hello: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV),
 dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, [etc]
Run Code Online (Sandbox Code Playgroud)

请注意dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2.statically linked相反,静态可执行文件.(就我而言corrupted section header size,如果我能说服Rust复制那个,我会感到非常惊讶.)

我需要传递什么选项rustc才能使它生成一个实际的静态可执行文件(具体来说:一个甚至file同意静态链接的选项).

static-linking rust

31
推荐指数
2
解决办法
8209
查看次数

Java的Mahout等效于Python

基于Java的Mahout的目标是构建可扩展的机器学习库.Python中是否有任何等效的库?

python java scalability machine-learning mahout

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

哪些绿色线程库可用于C,可以匹配Haskell绿色线程的性能和易用性?

forkIO在Haskell中编程时,我习惯于依赖GHC 用于可移植轻量级线程.

什么是C的等效库,可以提供相同的可扩展性和易用性?

具体来说,我需要C等价物至少以下两个功能.

forkIO     :: IO () -> IO ThreadId
killThread ::             ThreadId -> IO ()
Run Code Online (Sandbox Code Playgroud)

我假设我的应用程序,如果线程只打开阻塞操作而不是被强制挂起就足够了,因为所有线程都经常阻塞网络IO,我只使用splice系统调用要求Linux内核在套接字之间推送数据.


更新

本文比较了数字和表格

结果有利于Protothreads.由于我没有使用过任何其他图书馆,我很乐意听到任何使用/开发此类图书馆的人.

c concurrency networking haskell green-threads

23
推荐指数
2
解决办法
5220
查看次数

如何让gcc只生成可以直接加载到内存并执行的机器代码?

我想生成一个可以加载到内存中的文件(例如with mmap),然后跳转到该内存的开头运行代码.

理想情况下,我希望选择使代码可重定位(可能效率低下)或指定代码期望加载的显式地址(这很痛苦),但任何一个都可能自行正常工作.

c linker executable gcc machine-code

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

Code Golf:识别ascii艺术盒

不久之前做了一些数据结构工作时提出了这个问题,虽然它是一个很好的代码高尔夫:给定一个包含ascii艺术矩形的二维字符数组,生成一个矩形的坐标和大小列表.

  • 任何简单的可转换输入或输出格式都很好(例如:char**,字符串列表,标准输入上的行;四个整数列表,结构,固定数量+/-表示大小;等等).
  • 同样,输出不必按任何特定顺序排列.
  • 对于无效输入或格式错误的矩形,您没有任何有用的东西,但是您不应该为输入中不存在的矩形生成有效的坐标.
  • 没有两个有效的矩形共享一个+(虽然+可能不仅仅是矩形的一部分)
  • 您可以假设所有矩形至少为3x3:每个边都有一个-|在其中.

例子:

"        "
"  +-+ | "
"  | | \-"
"  +-+   "
(2,1;3,3)

"+--+  +--+"
"|  |  |  |"
"+--+  +--+"
(0,0;4,3), (6,0;4,3)

"  +---+  "
"->|...|  "
"  +---+  "
(2,0;5,3)

"+-+ +--+  +--+"
"| | |  |  |  |"
"+-+ |  |  + -+"
"    |  |      "
"    +--+  +-+ "
"  +--+    |   "
"  +--+    +-+ "
(0,0;3,3), (4,0;4,5) …
Run Code Online (Sandbox Code Playgroud)

language-agnostic code-golf ascii-art

13
推荐指数
5
解决办法
1958
查看次数

如何抑制'void*'到'foo*'转换的警告(通过-fpermissive从错误中减少)

我正在尝试用g ++编译一些c代码(是的,故意的).我收到错误(例如):

error: invalid conversion from 'void*' to 'unsigned char*' [-fpermissive]
Run Code Online (Sandbox Code Playgroud)

添加-fpermissive到编译选项让我:

error: invalid conversion from 'void*' to 'unsigned char*' [-Werror=permissive]
Run Code Online (Sandbox Code Playgroud)

这似乎是一个错误,因为-Werror,但添加-Wno-error=permissive -Wno-permissive结果:

error: -Werror=permissive: no option -Wpermissive
error: unrecognized command line option "-Wno-permissive" [-Werror]
Run Code Online (Sandbox Code Playgroud)

如何禁用从void*到其他指针类型的转换警告(全局)?

g++ suppress-warnings

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

调用casted函数指针是否安全?

特别是,以下内容将无法按预期工作:

typedef void(*func_p)(void*);

void foo(int* data)
    {
    printf("%i\n",*data);
    }

int main(int argc, char** argv)
    {
    func_p bar;
    int x = 42;

    bar = foo;
    bar((void*)&x);

    return 0;
    }
Run Code Online (Sandbox Code Playgroud)

也就是说,我可以依靠的数据指针(void*,int*,struct baz*,但不neccesarily void(*)(void))总是被compatably通过呢?

c casting function-pointers

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

如何在不关闭管道的情况下通过管道发送文件结尾?

当我打开运行bash的终端并输入以下内容时:

cat\nfoo\n^Decho bar\n
Run Code Online (Sandbox Code Playgroud)

(其中\n是输入,^ D是control-d)我得到:

foo
bar
Run Code Online (Sandbox Code Playgroud)

即,^ D导致猫退出,但我仍然可以输入更多.
如何通过C中的(unix)管道发送相同的输入(特别是文件结尾)?

c pipe

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

C嵌套开关:内部开关内的外部开关盒

我正在为我正在写的翻译添加协程支持,我想做类似以下的事情:

typedef enum {
    bar_stuff,
    bar_other
    } Bar;

typedef enum {
    foo_error=-1,
    foo_none=0,
    foo_again
    } Foo_state;

Foo_state do_foo(Bar bar,Foo_state foo)
    {
    switch(foo)
        {
        case foo_none: //start
        switch(bar)
            {
            case bar_stuff:
                //do stuff
                return foo_none;
            case bar_other:
                //do other stuff
                return foo_again;
                case foo_again: //!! this doesn't work
                    /* edit: this is supposed to be a case of
                     *     switch(foo), not switch(bar)
                     */
                //do more other stuff
                return foo_none;
            default:
                //stuff
                return foo_none;
            }
        default:
            //fail
            return foo_error;
        }
    }
Run Code Online (Sandbox Code Playgroud)

显然这不起作用(我得到重复的案例值,替代可能是未定义的行为/段错误).我可以将switch(bar)写为if/else …

c interpreter language-design coroutine

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