Articles of c + +

如何编译与ICU的SQLite?

我从http://www.sqlite.org/sqlite-autoconf-3070701.tar.gz下载了sqlite 我怎样才能编译与icu的sqlite?

我如何强制SIGILL发送到我的程序?

我试图用dynamic生成的代码做一些令人讨厌的黑客事情,并且当操作系统到达一个未知的操作码时,我希望操作系统给我一个SIGILL。 这可以让我添加一层关于我的程序的元信息等等。 但是,对于我的小testing程序,似乎OS不发送SIGILL,而是发送一个SIGBUS或一个SIGSEGV。 我猜这意味着内存所在的页面上已经设置了一个NX位。 有关如何使内存可执行的任何提示? 作为参考,这里是我的testing程序: #include <stdio.h> #include <signal.h> #include <stdlib.h> #include <string.h> void SIGILL_handler(int sig) { printf("Handling SIGILL\n"); } typedef void(*FUNC)(void); int main() { signal(SIGILL, SIGILL_handler); int *bad = malloc(16); memset(bad, 255, 16); ((FUNC)bad)(); printf("Returning like it's no big deal\n"); return 0; }

为什么不可以使用ioremap,然后remap_pfn_range?

在我的驱动程序中,我试图将从ioremap返回的地址映射到用户空间地址。 ioremap返回什么样的地址? 与kmalloc地址有什么不同? 我怎样才能映射从ioremap返回的地址? 应该在remap_pfn_range插入哪个地址?

程序加载/执行

我是编译器的初学者,但是我非常有兴趣了解一个程序是如何构造的(二进制)以及如何读取和加载到内存中执行。 你们build议我阅读哪些电子书/书籍/教程以便快速入门?

如何在汇编程序中使用C库?

我想知道如何在汇编程序中编写文本编辑器。 但是现代操作系统需要C库,特别是窗口系统。 我发现这个网页 ,这帮助了我很多。 但是我想知道是否有细节我应该知道。 我知道足够的汇编程序来编写将在Linux中使用GTK +的窗口的程序,但是我希望能够理解我必须发送给一个函数,使其成为一个有效的input,以便它更容易使用所有的C库。 对于C和x86汇编程序之间的接口,我知道从这个页面可以学到什么,而不需要其他东西。

处理socket描述符如文件描述符(fstream)? C ++ / Linux的

偶然发现,我可以读写套接字描述符。 我可以以某种方式(ab)使用fstream机制将数据输出到套接字描述符?

multithreading服务器问题

我正在写一个服务器在Linux应该服务的API。 最初,我想在单个端口上进行multithreading,这意味着我将有多个线程处理单个端口上接收到的各种请求。 我的一个朋友告诉我,这不是它应该工作的方式。 他告诉我,当收到请求时,首先必须遵循一个Handshake过程,创build一个线程,监听其他某个专用于该请求的端口,然后将请求的客户端redirect到新的端口。 理论上,这很有趣,但我找不到任何有关如何实现握手和redirect的信息。 有人可以帮忙吗? 如果我在解释你的响应时没有错,一旦我创build了一个主线程侦听端口的multithreading服务器,并创build一个新的线程来处理请求,我基本上使它在单个端口上multithreading? 考虑一下我每秒都会收到大量请求的场景。 港口上的每一个请求现在都应该等待“当前”请求完成吗? 如果不是,那么通信如何完成:假设一个浏览器发送一个请求,所以处理这个请求的线程必须先监听端口,阻塞,处理,响应,然后解除阻塞。 通过这个,虽然我有“multithreading”,但我使用的是除主线程以外的一个线程,因为端口被阻塞。

.net类在Linux上通过SSH远程执行?

我不知道从哪里开始简单地执行远程脚本并将输出返回到Web表单。 在这种情况下,我们有一个执行一些第三方工具的应用程序服务器。 我们想为我们的高级用户编写一个接口,让他们检查各种进程的状态,并执行一些支持的第三方pipe理工具。 问题是我们只通过SSH通过Putty连接到这台Linux(RedHat)机器上。 我看着PsExec,但似乎并没有处理SSH。 如果可能的话,我想避免任何大的安全漏洞,但这是为了封闭networking中有限数量的用户。 感谢您的帮助!

在Linux中select并接受延迟

我创build了一个简单的应用程序来接受使用select()和accept()的IPv4 TCP连接。 我使用python脚本来testing这个。 它依次打开100个连接。 即: for i in range(100): s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) print s.connect((IP, PORT)) s.send("Test\r\n") 我观察到的是,在第一次X连接后,我的应用程序在select()中停留了2秒钟。 strace的输出: 1344391414.452208 select(30, [3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29], NULL, NULL, NULL) = 1 (in [3]) […]

如何在TextView控件中剪切,复制,粘贴和select全部内容?

我试图剪切,复制,粘贴,并select所有与TextView的Gtk控制。 为什么TextView控件? 因为我似乎无法得到血腥的TextEditor控制去多行! 无论如何…我如何: 从TextView控件中剪切文本? 从TextView控件复制文本? 将文本粘贴到TextView控件中? 在TextView控件中select所有文本? 以下是我所尝试的:1小时的谷歌search。 和这个: TextView tv = …; TextIter start, end; if (tv.Buffer.GetSelectionBounds(start, end)) { String selected = tv.Buffer.GetText(start, end); Clipboard clipboard = tv.GetClipboard(Gdk.Selection.Clipboard); clipboard.Text = selected; } 从: https : //stackoverflow.com/questions/26308501/gtk-textview-copy-and-paste – 但这显然不起作用(因此我的问题)。 我也发现这个: http : //docs.go-mono.com/ ?link=T%3aGtk.TextView Mono GTK C#文档。 有这么多东西,似乎是不存在的。