小编Goo*_*ofy的帖子

QEMU是否适合在ARM和PowerPC的汇编程序中学习编程?

我想学习PowerPC和ARM的汇编程序编程,但我无法为此目的购买真正的硬件.我正在考虑使用QEMU.但是我不确定它是否能很好地模拟这两种体系结构,我将在本机汇编程序中编译和运行我的程序吗?

linux assembly arm qemu powerpc

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

使用Visual Studio进行开源项目(项目管理和法律问题)

  1. 我正在为开发的Windows开发小型开源项目.我使用Visual Studio向导创建了新项目,现在我想使用subversion发布它并与朋友一起开发它.我必须将哪些项目的配置文件添加到存储库,以使我的朋友能够下载当前项目的修订版并在Visual Studio中打开它?

    1. 列表项目我所在的大学是Microsoft Academy Alliance项目的成员,该项目使学生能够下载许多Microsoft产品的合法副本.我可以使用此副本开发开源项目并在Internet上发布创建的代码吗?

visual-studio

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

从C中的多个线程访问静态常量变量

我在Linux(C/C++和POSIX线程)下有多线程编程的经验,但是最明显的情况有时非常复杂.

我的代码中有几个静态常量变量(全局和函数本地),我可以在不使用互斥锁的情况下从多个线程同时访问它们吗?因为我不修改它们应该没问题,但总是更好问.

我必须进行高速优化,因此即使像互斥锁一样快速操作也对我来说非常昂贵,特别是因为我的应用程序将从长循环中访问这些变量.

c c++ pthreads

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

Linux SCTP实现状态

前段时间我在Linux上使用过SCTP,现在我想在新项目中再次使用它.问题是,lksctp似乎已经死了,自2009年以来没有更新(根据git).在这个时候SCTP草案中几乎没有重要的事情发生变化,所以lksctp现在已经过时了(例如API)

我试图找到这个协议的其他实现,但看起来,lksctp是唯一的.你有什么关于Linux上SCTP未来的信息吗?

linux sctp

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

C++ 0x中的R值

Rvalues恕我直言是C++的重大改进,但在开始时似乎很混乱.请看下面的代码:

#include <string>

std::string && foo (void)
{
    std::string message ("Hello!");

    return std::move (message);
}

void bar (const std::string &message2)
{
    if (message2 == "Bye Bye!")
        return;
}

int main ()
{
    bar (foo ());
}
Run Code Online (Sandbox Code Playgroud)

引用message2message返回的原始对象的最后一个所有者foo(),对吧?

c++11

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

C++容器的迭代器

这个问题可能听起来很蹩脚,但我还没有找到明确的答案.我可以假设,通过返回的迭代器mapfind()方法将这个点在同一数据,即使我会添加(或删除)其他元素一样map?我不清楚map迭代器是否指向map特定数据中的位置...

c++ iterator stl

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

STL和多线程

我知道,当我在多个线程内的单个STL容器上执行操作时,我需要使用互斥锁.但是,我想知道此规则是否有任何例外.请考虑我正在尝试实施的简化方案.

我有多个线程向容器添加元素,操作包含互斥锁定/解锁.然后线程以某种方式通知(例如在linux上使用eventfd)单线程专用于调度此容器中的元素.我想要做的是访问容器中的第一个元素而不使用互斥锁.示例代码基于deque,但请注意我可以使用任何具有队列功能的容器:

std::mutex     locker;
std:deque<int> int_queue;
int            fd; // eventfd
eventfd_t      buffer;
bool           some_condition;
Run Code Online (Sandbox Code Playgroud)

线程1,2,3等

locker.lock ();
int_queue.push_back (1);
locker.unlock ();

eventfd_write (fd, 1);
Run Code Online (Sandbox Code Playgroud)

专用于调度元素的线程:

while (true)
{
    bool some_condition (true);

    locker.lock ();
    if (int_quque.empty () == false)
    {
        locker.unlock ();
    }
    else
    {
        locker.unlock ();
        eventfd_read (fd, &buffer);
    }

    while (some_condition)
    {
        int& data (int_queue.front ());

        some_condition = some_operation (data); // [1]
    }

    locker.lock ();
    int_queue.pop ();
    locker.unlock ();
}
Run Code Online (Sandbox Code Playgroud)

[1]我会多次对signle元素执行some_operation(),这就是为什么我想在这里避免互斥锁定.这很贵.

我想知道这段代码是否会导致任何同步问题.

c++ stl

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

使用OpenGL时是否可以在GPU上执行浮点运算?

在大学,我们已经介绍了OpenGL,这是我第一次使用它.到目前为止,我已经实现了像Sierpinski地毯这样简单的东西,我注意到大多数(固定和浮点)计算都是在CPU上执行的.OpenGL是否提供了一些API,可以将这些计算"转发"到GPU?

我知道,有OpenCL或CUDA这样的框架,但我想知道OpenGL是否可以使用GPU进行典型的图形计算,比如计算坐标.

opengl gpu

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

使用 NCurses 的不同窗口边框颜色

我在终端中运行了几个 NCurses 窗口。是否可以为每个窗口设置其他边框颜色?我尝试了下面的代码,但它不起作用:

start_color()
// ...

init_pair (1, COLOR_RED, COLOR_CYAN);
attron (COLOR_PAIR (1));
box (window, 0,0);
wrefresh (window);
attroff (COLOR_PAIR (1));
Run Code Online (Sandbox Code Playgroud)

window colors ncurses

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

如何使用Autoconf检查Linux版本?

我的程序至少需要Linux 2.6.26(我使用timerfd和其他一些特定于Linux的功能).

我有一个大致的想法如何编写这个宏,但我没有足够的知识为Autoconf编写测试宏.算法:

  1. 运行"uname --release"并存储输出
  2. 解析输出并减去Linux版本号(MAJOR.MINOR.MICRO)
  3. 比较版本

我不知道如何运行命令,存储输出并解析它.

也许这样的宏已经存在并且它可用(我还没有找到)?

linux autoconf

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

发送UDP数据报而不分段

我想向本地网络中的所有对等方发送广播消息.消息是32位整数.我可以肯定,这个消息不会让我支离破碎,对吧?将有两个选项: - 对等体将立即接收整个消息 - 对等体根本不会接收消息

更进一步,4个字节是最大数据大小,可以在一个UDP数据报中发送?我使用基于以太网的网络占99%.

udp network-programming

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

如何获得QGraphicsView的可见场景矩形?

我正在显示构建为 QGraphicsPixmapitem 项目矩形的地图(每个项目代表一个地图图块)。因为我的地图非常大(大约 30 MB 的 PNG 文件),我希望能够按需加载像素图,仅当它们在 QGraphicsView 中对用户可见并在它们变得不可见时卸载。

有没有办法找出可见的场景矩形?

qt qgraphicsview

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

从最后开始解析字符串

我想只在最后一个_字符周围分割字符串,例如:some_string_foo_bar分成两个子字符串some_string_foo bar.

我尝试使用PatternStringTokenizer,但他们总是从stirng开始.知道怎么做吗?

java string

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