我最近注意到我的文本编辑使用的项目文件(以及其他一些垃圾)都添加了项目的git存储库.由于它们实际上不是项目的一部分,我想删除它们,但git rm不会从存储库中删除旧版本,我找不到任何看起来很有希望的东西.
我想在Python中输出tail -F或类似的东西,而不会阻塞或锁定.我发现一些真正的旧代码到做在这里,但我想一定有更好的方法或通过图书馆现在做同样的事情.谁知道一个?
理想情况下,tail.getNewData()每次我想要更多数据时,我都会有类似的东西.
我正在尝试使用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同意静态链接的选项).
基于Java的Mahout的目标是构建可扩展的机器学习库.Python中是否有任何等效的库?
forkIO在Haskell中编程时,我习惯于依赖GHC 用于可移植轻量级线程.
什么是C的等效库,可以提供相同的可扩展性和易用性?
具体来说,我需要C等价物至少以下两个功能.
forkIO :: IO () -> IO ThreadId
killThread :: ThreadId -> IO ()
Run Code Online (Sandbox Code Playgroud)
我假设我的应用程序,如果线程只打开阻塞操作而不是被强制挂起就足够了,因为所有线程都经常阻塞网络IO,我只使用splice系统调用要求Linux内核在套接字之间推送数据.
更新
本文比较了数字和表格
结果有利于Protothreads.由于我没有使用过任何其他图书馆,我很乐意听到任何使用/开发此类图书馆的人.
我想生成一个可以加载到内存中的文件(例如with mmap),然后跳转到该内存的开头运行代码.
理想情况下,我希望选择使代码可重定位(可能效率低下)或指定代码期望加载的显式地址(这很痛苦),但任何一个都可能自行正常工作.
不久之前做了一些数据结构工作时提出了这个问题,虽然它是一个很好的代码高尔夫:给定一个包含ascii艺术矩形的二维字符数组,生成一个矩形的坐标和大小列表.
+(虽然+可能不仅仅是矩形的一部分)-或|在其中.例子:
" "
" +-+ | "
" | | \-"
" +-+ "
(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) 我正在尝试用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*到其他指针类型的转换警告(全局)?
特别是,以下内容将无法按预期工作:
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通过呢?
当我打开运行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)管道发送相同的输入(特别是文件结尾)?
我正在为我正在写的翻译添加协程支持,我想做类似以下的事情:
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 ×5
python ×2
ascii-art ×1
casting ×1
code-golf ×1
concurrency ×1
coroutine ×1
executable ×1
g++ ×1
gcc ×1
git ×1
haskell ×1
interpreter ×1
java ×1
linker ×1
machine-code ×1
mahout ×1
networking ×1
pipe ×1
rust ×1
scalability ×1
tail ×1