小编max*_*dev的帖子

在bash中重用命令管道

我使用以下内容来缩进configure脚本的输出:

./configure | sed "s/^/    /"
Run Code Online (Sandbox Code Playgroud)

现在我想重用管道后面的部分,所以我不必写

./configure | sed "s/^/    /"
make | sed "s/^/    /"
make install | sed "s/^/    /"
Run Code Online (Sandbox Code Playgroud)

我试过把sed变量放在这样一个变量中:

indent=sed "s/^/    /"
Run Code Online (Sandbox Code Playgroud)

然后呢

./configure | indent
Run Code Online (Sandbox Code Playgroud)

但那不起作用 - 我怎样才能做到这一点?

linux bash shell sed

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

"lwjgl-util.jar"在哪里?

我正在用LWJGL 3.0.0a开发一款游戏.很多教程在那里使用lwjgl_util.jar含有类似的东西Vector2f,并GLU像功能gluUnProject.

在这个版本中(可在下载页面上找到),不再包含这样的库; 它只包含核心lwjgl.jar.这些工具哪里去了?

java opengl lwjgl

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

骆驼交换分裂期间丢失的财产

我有以下骆驼路线设置:

<route id="firstRoute">
    <from uri="..." />

    <!-- This processor puts a list of items as the out body -->
    <process ref="collectItemsProcessor" />

    <!-- Now all items should be processed one by one: -->
    <split>
        <simple>${body}</simple>
        <to uri="direct:secondRoute" />
    </split>
</route>

<route id="secondRoute">
    <from uri="direct:secondRoute" />

    <process ref="itemProcessor" />
</route>
Run Code Online (Sandbox Code Playgroud)

itemProcessor我想计算通过将属性放入交换而成功处理的项目数:

exchange.setProperty("PROCESSED_ITEMS", exchange.getProperty("PROCESSED_ITEMS", Integer.class) + 1);
Run Code Online (Sandbox Code Playgroud)

由于某种原因,每次调用处理器时,该属性都会再次为空。文档说:

Exchange 还在其整个生命周期内保存元数据,这些元数据存储为可使用各种 getProperty(String) 方法访问的属性。

https://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/Exchange.html

最初在 中设置属性时collectItemsProcessor,会保留该值。我怀疑每次调用分割路由时都会复制交换,但是我怎样才能真正保留“整个生命周期内的元数据”?

java osgi apache-camel blueprint apache-karaf

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

如何在Java中创建简单的UDP客户端 - 服务器通信?

我在哪里可以找到有关Java的UDP的详细信息,以及如何建立基本的UDP通信?

java networking udp client-server

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

使用“pushf”并弹出到 32 位寄存器是否会破坏堆栈?

我想通过将 CPU 标志压入堆栈来读取它们,然后将它们弹出到寄存器中,如下所示:

uint32_t getEflags() {
    uint32_t eflags;
    asm ("pushf");
    asm ("pop %eax");
    asm ("mov %%eax, %0" : "=r"(eflags));
    return eflags;
}
Run Code Online (Sandbox Code Playgroud)

现在我发现这是一个错误,因为Pushf只压入 EFLAGS 的低 16 位,然后我将它们弹出到 32 位寄存器中(我需要Pushfd)。

这意味着我弹出的内容基本上比最初推送的要多 - 返回这里时我的堆栈会发生什么情况?

c assembly kernel osdev

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

是++(a = b); 快于a = b + 1;?

是否更快使用++(a = b);而不是a = b + 1;

据我了解,第一种方法包括以下操作:

  1. 移动的值ba
  2. a内存增量

而第二种方法是:

  1. b1到堆栈
  2. 呼叫添加
  3. 将结果弹出到寄存器
  4. 将寄存器移至 a

它实际上需要更少的周期吗?或者编译器(例如gcc)是否进行了优化,因此它没有什么区别?

c++ heap performance compilation

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