小编Ale*_*lex的帖子

如何使用GCC的多个版本

我们有一个新的应用程序需要glibc 2.4(来自gcc 4.1).我们运行的机器有gcc 3.4.6.我们无法升级,应用程序必须在此计算机上运行.

我们安装了gcc 4.1,但是,在编译时,它使用的是3.4.6中的所有包含等.

我们如何解决这个问题?

有关将4.1用于此应用程序的任何建议吗?

c++ linux gcc g++

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

查找目录中不是目录的所有文件

我正在寻找一种方法来列出目录中的所有文件,不包括目录本身,以及这些子目录中的文件.

所以,如果我有:

./test.log
./test2.log
./directory
./directory/file2
Run Code Online (Sandbox Code Playgroud)

我想要一个返回的命令:./ test.log ./test2.log,没有别的.

unix bash ksh

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

为什么名称空间不能成为模板参数?

我知道名称空间不能是模板参数.请参阅问题"专用于命名空间的模板":

鉴于:

namespace A {
  class Foo;
  class Bar;
}

namespace B {
  class Foo;
  class Bar;
}
Run Code Online (Sandbox Code Playgroud)

我想在命名空间上模板化一个类,A或者B使以下工作:

template<name> class C {
  name::Foo* foo;
  name::Bar* bar;
};
Run Code Online (Sandbox Code Playgroud)

我想知道为什么会这样.我知道模板不是结构,但编译器的设计是否存在技术限制?或者是否有一些重要的权衡实现此功能?

c++ templates namespaces language-design

27
推荐指数
2
解决办法
9066
查看次数

What is the best way to pass information from java to c++?

I have a java application I need to pass some info to a C++ program. It has been suggested that I use some simple socket programming to do this. Is this the best way? If not what are the alternatives? If so, how should I go about learning about socket programming?

c++ java sockets cross-platform

18
推荐指数
2
解决办法
5365
查看次数

关闭BufferedReader/PrintWriter会关闭套接字连接吗?

我有一个应用程序,它使用简单的套接字在两个系统之间传递一些字符.我把我的java应用程序作为服务器运行.我建立一个连接很好,甚至传递一个消息.但是,在发送一条消息后,我的连接关闭.

从我可以看出它似乎在关闭时printWriter,bufferedReader套接字本身正在关闭?!这很糟糕,因为我有多条消息要在同一个连接上发送.

printWriter = new PrintWriter(theServer.getClientSocket().getOutputStream());
bufferedReader = new BufferedReader(new InputStreamReader(theServer.getClientSocket().getInputStream()));


printWriter.println("the line");

printWriter.close(); //Closing on these lines?
bufferedReader.close(); //Closing on these lines?
Run Code Online (Sandbox Code Playgroud)

我满满的吗?如何在Java中维护此连接?

java sockets

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

你如何处理Java中的Socket Disconnecting?

大家好.我有一个使用ServerSocket和Socket类用java编写的服务器.

我希望能够检测并处理断开连接,然后在必要时重新连接新客户端.

检测客户端断开连接,关闭套接字,然后接受新客户端的正确步骤是什么?

java sockets

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

如何手动将选项插入boost.Program_options?

我有一个使用Boost.Program_options来存储和管理其配置选项的应用程序.我们目前正在远离配置文件并使用数据库加载配置.我编写了一个API,通过主机名和实例名从数据库中读取配置选项.(很酷!)但是,据我所知,没有办法手动将这些选项插入到boost Program_options中.有没有人用过这个,有什么想法吗?来自boost的文档似乎表明在该映射中获取内容的唯一方法是使用store函数,该函数可以从命令行或配置文件中读取(不是我想要的).基本上寻找一种手动将DB读取值插入到地图中的方法.

c++ configuration boost-program-options

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

为什么Boost scoped_lock没有解锁互斥锁?

我一直在用boost::mutex::scoped_lock这种方式:

void ClassName::FunctionName()
{
    {  
     boost::mutex::scoped_lock scopedLock(mutex_);
     //do stuff
      waitBoolean=true;
    }
    while(waitBoolean == true ){
        sleep(1);
    }
    //get on with the thread's activities
}
Run Code Online (Sandbox Code Playgroud)

基本上它设置waitBoolean,而另一个线程通过将waitBoolean设置为false来表示它已完成;

但是,这似乎不起作用,因为其他线程无法锁定mutex_ !!

我假设通过将scoped_lock包装在括号中,我将终止其锁定.情况并非如此?在线阅读说它只在调用析构函数时放弃互斥锁.当它超出当地范围时不会被销毁吗?

信令部分代码:

while(running_){
   boost::mutex::scoped_lock scopedLock(mutex_);
   //Run some function that need to be done...
   if(waitBoolean){
      waitBoolean=false;
   }
}
Run Code Online (Sandbox Code Playgroud)

谢谢!

c++ multithreading boost mutex

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

TCP和PF_RING

我正在看看PF_RING在我的应用程序中使用发送和接收.

如果我计划PF_RING用于维护TCP连接,看起来我需要自己手动"伪造"IP和TCP消息,因为pfring_send发送原始数据包.这是否意味着我必须手动重新实现TCP PF_RING

我明白接收使用有明显的优势PF_RING,有没有人试过发送数据PF_RING?与普通的发送呼叫相比,有明显的优势吗?

注意:我没有使用DNA(直接NIC访问),我只是使用具有NIC感知驱动程序的内核部分旁路.

c c++ linux-kernel pf-ring

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

水平触发或边缘触发更高效吗?

我试图弄清楚什么是更高性能,边缘触发或水平触发的epoll.

主要是我正在考虑"高性能":

  1. 能够处理多个连接而无需降级.

  2. 能够保持每个入站消息的最高速度.

我实际上更关心#2,但#1也很重要.

我一直在使用单线程使用者(使用接受/读取多个套接字连接epoll_wait)和多个生产者运行测试.

到目前为止,我看到没有区别,甚至多达1000个文件描述符.

我一直在努力工作(妄想?)边缘触发应该更高效,因为将会收到更少的中断.这是正确的假设吗?

我的测试的一个问题,可能是掩盖性能差异,是我收到后不会将我的消息发送给线程,因此中断次数越少并不重要.我一直不愿意做这个测试,因为我一直在使用__asm__ rdtsc我的"时间戳",所以我不想调和我的原始时间戳来自哪个核心.

让我更加怀疑的是,在我看到的一些基准测试中,水平触发的epoll表现更好.

哪个更好?在什么情况下?没有区别吗?任何见解将不胜感激.

编辑:

我的套接字是非阻塞的.

c linux epoll

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