小编Fat*_*mon的帖子

如何在操作系统级别实现睡眠?

我只是对如何sleep(time in ms)在C库中实现或基本上在操作系统级别实现...

我猜...

  1. 可能是基于处理器速度你做了一段时间的nop循环(我不确定睡眠时间是否准确)...
  2. 处理器中的任何特殊寄存器,您在其中写入一些值,处理器只停止指定的时间(由于处理器甚至无法运行其他程序,这将是非常低效的).

有线索吗?可能C库的源代码可以解释一下吗?我并不太关注"C"是如何实现的......我只是想知道"sleep()"函数是如何实现的.

c operating-system sleep

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

c#重定向(管道)进程输出到另一个进程

我正在尝试使用Process类在c#中运行一个进程.

Process p1  = new process();
p1.startinfo.filename =  "xyz.exe";
p1.startinfo.arguments = //i am building it based on user's input.
p1.start();
Run Code Online (Sandbox Code Playgroud)

所以基于用户输入我正在构建参数值.现在我有一个案例,我必须将p1的输出传递给另一个进程说grep.所以我基本上试过这个

p1.startinfo.arguments =" - info | grep 1234";

我的意图是像xyz.exe -info | grep 1234

但这似乎不适用于.net ..我实际上可以创建另一个流程变量并运行"grep"作为一个单独的进程..但我想知道是否有任何方法可以做,因为我尝试上面..

.net c# pipe process

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

理解C++ .Net中的String ^

我记得在某处看到"^"运算符用作托管C++代码中的指针运算符.因此"^"应该相当于"*"运算符权限?

假设我的理解是对的,当我开始理解.Net并编写了一些示例程序时,我遇到了一些这样的代码:

String ^username; //my understanding is you are creating a pointer to string obj
.
.         // there is no malloc or new that allocates memory to username pointer
.
username = "XYZ"; // shouldn't you be doing a malloc first??? isn't it null pointer
Run Code Online (Sandbox Code Playgroud)

我无法理解这一点.

.net c++ string managed-c++ reference

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

平滑滚动.net表格

嗨我在.net中使用表单,我在运行时动态添加大量链接标签,我将这些链接标签添加到面板并将该面板添加到winform.当链接标签的数量增加时,表单会弹出一个自动滚动条(垂直)...现在当我使用该自动滚动向下滚动时,表单不会更新其视图,因为我滚动,只有当我停止滚动时,表单才会刷新...此外,当它刷新它看起来太糟糕..我可以看到它如何绘制缓慢....

有谁曾经处理过这个问题?

我在scroll事件处理程序中尝试了form.refresh(),但这似乎没有帮助..

有线索吗?

.net c# repaint winforms

4
推荐指数
3
解决办法
6546
查看次数

为什么在我的管道中打开的*不能在Windows上运行?

我和Perl有这个奇怪的问题.我试图从我的Perl脚本中执行外部程序,这个外部程序将字符串+通配符作为参数.我的Perl程序看起来像这样

my $cmd_to_run = 'find-something-in-somedb myname* |' 
open(procHandle, $cmd_to_run); # I am using open because I want to 
                               # parse the output using pipes
Run Code Online (Sandbox Code Playgroud)

出于某些奇怪的原因,运行此Perl脚本(在Windows下)调用open函数最终会出错:

'sqlselect' is not recognized as an internal or external command
Run Code Online (Sandbox Code Playgroud)

我猜测它与*我的命令字符串中存在有关,因此我将其删除,现在我的命令字符串看起来像这样

my $cmd_to_run = 'find-something-in-somedb myname|'
Run Code Online (Sandbox Code Playgroud)

现在,当我运行我的Perl脚本时,它工作得非常好.只有存在通配符时才会出现问题.

有些要点需要注意:

  1. 我在相同的cmd提示符(我正在执行这个perl脚本)中使用通配符char运行相同的命令,它运行得很好..

  2. 当我使用Windows中的_open函数在C中编程时,相同的命令有效.

  3. 问题似乎只有当存在通配符*时,至少这是我猜的

  4. 不,我没有在Unix上试过这个..

任何线索???

编辑:我发现这与ENV有关.我尝试运行的程序仅在搜索字符串中存在"*"通配符时使用"sqlselect"... find-something-in-somedb和sqlselect存在于同一位置.在哪种情况下perl如何能够找到"find-in-db"而不是"sqlselect"

对不起,我意识到原来的问题现在变成了别的东西..与"ENV"有关,而不是与Wildcard*有关

windows perl pipe wildcard environment-variables

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

从Perl脚本中省略或排除正则表达式匹配

嗨,我想在文件中搜索与此类似的内容:

Start Cycle
report 1
report 2
report 3
report 4
End Cycle
Run Code Online (Sandbox Code Playgroud)

....继续......

我想搜索"Start Cycle",然后从中提取报告1并报告3.我的正则表达式看起来像这样

(Start Cycle .*\n)(.*\n)(.*\n)(.*\n)
Run Code Online (Sandbox Code Playgroud)

上面的正则表达式选择开始循环和接下来的三行..但我想省略我的结果中的第三行.那可能吗?或者任何更简单的perl脚本都可以完成?我期待一个结果,如:

Start Cycle
report 1
report 3
Run Code Online (Sandbox Code Playgroud)

regex perl

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