小编sam*_*moz的帖子

使用open()系统调用

我正在编写一个将输出写入文件的程序.如果此文件不存在,我想创建它.

目前,我在调用open时使用以下标志:O_WRONLY | O_CREATE

但是,当这创建文件时,它不会给我任何写入它的权限...

我如何使用open以便在不存在的情况下创建文件,但是在需要时会创建具有必要权限的文件?

谢谢!

c unix file

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

在OpenGL中,如何调整正在调整大小的窗口?

我正在绘制几个从窗口高度和宽度键入的形状(例如圆圈).由于窗口始终以给定大小开始,因此它们被正确绘制,但是当窗口调整大小时,它会使宽高比混乱.

无论窗口大小如何,我如何正确绘制形状?

opengl graphics viewport

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

如何在不使用lists模块的情况下编写Erlang的列表连接?

我正在读的关于Erlang的书在它的后面有练习,一个是重新创建列表:追加功能.

我可以简单地使用++运算符来做这个,但这不是很慢吗?我认为练习的重点是使用我编写的列表操作来完成.

到目前为止,我能想到的唯一方法是执行以下操作:

concat([], _, Results)->
  Results;
concat(_, [], Results)->
  Results;
concat([Ah|At],B,Results) ->
  concat(At,B,[Ah|Results]).
Run Code Online (Sandbox Code Playgroud)

但我知道这是不正确的......

关于如何做到这一点的任何建议?

编辑:澄清问题,这是一个示例输入和输出:

输入:[[1,2,3],[],[4,5],[6]]输出:[1,2,3,4,5,6]

工作一段时间后,我想出了这个代码:

append([A|[B|[T|[]]]]) ->
  append([A++B|T]);
append([H|T]) ->
  H++T.
Run Code Online (Sandbox Code Playgroud)

但是,这仅适用于列表大小为3的情况.如何修改此值以使其适用于任意给定数量的随机大小的列表?

erlang function list append

10
推荐指数
2
解决办法
8781
查看次数

如何从CDC对象获取HDC对象?

我有一个CDC类型的对象dc,我想得到一个HDC对象.

我在这里阅读了MSDN文档,但并不是真的理解它.

有人可以给我一个关于如何做到这一点的简短示例/解释吗?

c++ windows mfc cdc

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

在grep中使用转义字符

我有以下正则表达式来消除空格,制表符和新行: [^ \n\t]

但是,我想为某些其他字符扩展它,例如><.

我尝试过[^ \n\t<>],现在效果很好,但我希望表达式不匹配,如果<>前面有一个\.

我试过了[^ \n\t[^\\]<[^\\]>],但这没用.

regex escaping

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

在Erlang中,有没有办法创建一个空函数?

我正在编写一个Erlang函数,它将每个偶数打印到给定参数.

到目前为止,我已经用这样的守卫编写了这个函数:

printEven(I,N) when I < N ->
  if
    I rem 2 == 0 -> io:format("~p~n",[I]), printEven(I+1,N);
    I rem 2 == 1 -> printEven(I+1,N)
  end;
printEven(I,N) ->
   io:format("Done").
Run Code Online (Sandbox Code Playgroud)

我真的很想让最后一个案例自动退出,而不必在函数中打印任何东西.我试过删除它,但随后发生错误,因为递归完成后,会抛出错误.

我怎样才能做到这一点?在erlang中是否有类似'pass'或'yield'的关键字?

erlang function

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

是否有成熟的方式来连接Erlang和PostgreSQL或MySQL?

我已经在互联网上搜索了连接到任一数据库的驱动程序,并且我看到的所有项目已经死了很长时间,看起来不完整,或者没有足够好的文档可以在不阅读所有源代码的情况下使用.

有没有人使用Erlang之前与MySQL或PostgreSQL交谈,你使用了什么类型的包来做到这一点?

mysql database postgresql erlang

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

如何使用fprintf并写入管道?

我创建了一个管道,并使用dup2()将流1和2(stdout和stderr)覆盖到这些管道中.

现在我希望使用fprintf写入流1或2,但我的程序似乎没有在管道的另一端接收任何内容.我尝试过使用printf(),但我不确定这是默认写入stdout还是流1.如果它写入流1,我想它在我的代码更深处的问题.

基本上我问,给定一个表示流的int,我如何获得适合在fprintf()中使用的FILE*?

c printf system pipe

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

在Erlang中使用大量的尾递归会减慢它吗?

我最近一直在阅读关于Erlang的内容,以及由于使用迭代循环的困难,尾部递归如此频繁使用.

递归的这种高使用是否会降低它的速度,所有函数调用以及它们对堆栈的影响是什么?或者尾部递归否定了大部分内容?

erlang tail-recursion

8
推荐指数
2
解决办法
1687
查看次数

如何从外部存储器运行ARM代码?

我正在使用LPC2132 ARM芯片开发程序.但是,我的程序比芯片上的空间大.

如何将芯片连接到某种外部存储器芯片以保存其他可执行代码?这可能吗?如果没有,人们在芯片空间耗尽时通常会做些什么?

memory embedded arm

8
推荐指数
2
解决办法
4294
查看次数