Articles of c + +

Linux C:类似shell的环境 – 个别执行 – C命令? (C口译员)

对不起,如果这个问题措辞错误 – 我不知道我要求的正确的话! 🙂 说,你有一些简单的C程序,如: #include <stdio.h> int main() { int a=2; printf("Hello World %d\n", a); return 0; } 通常情况下,这将不得不被保存在一个文件(比如, hello.c ); 那么我们在源文件上运行gcc并获得可执行文件 – 如果我们编译了debugging信息,那么我们可以在可执行文件上使用gdb来遍历代码行,并检查variables。 我想要的是基本上某种“C”shell – 类似于Pythonshell; 从某种意义上说,我可以在一个文件(一个脚本)中拥有一系列Python命令 – 或者我可以将相同的命令粘贴到shell中,并执行相同的命令。 关于上面这个简单的程序,这是我希望能够做到的( C>代表想象中的提示): C> #include <stdio.h> (stdio.h included) C> int a=2; C> printf("Hello World %d\n", a); Hello World 2 C> 换句话说,我希望能够交互地执行单个C命令( 我猜这会代表即时编译的sorting? )。 最初,我被C shell […]

设置QGroupBox标题的alignment方式

我尝试以编程方式设置QGroupBox的标题alignment方式。 根据文档,我尝试按照以下方式进行: MainWidget::MainWidget (QWidget * parent) : QWidget (parent) { setWindowTitle (tr ("QGropBox Title Alignment issue") ); QGroupBox * group = new QGroupBox ("Group Title", this); QVBoxLayout * layoutTop = new QVBoxLayout (); layoutTop->addWidget (group); group->setAlignment (Qt::AlignHCenter); this->setLayout (layoutTop); } 但是我得到了意想不到的结果,并且标题与组框左侧一致。 我对环境有这样的行为: Debian 9.0(sid); Qt 5.5.1(从仓库安装); XMonad DE。 我对下一个环境也有同样的行为: Ubuntu 15.10; Qt 5.4(使用offline-installer手动安装); KDE。 但! […]

如何在C ++中隐藏用户input?

可能重复: 从std :: cin读取密码 我试图做一个简单的密码程序,所以我可以熟悉C ++,但我有一个问题。 在这段代码中,我要求用户input他们select的密码,然后input。 我想要做的就是隐藏input( 不能用* s代替),但是仍然显示光标,以及input密码之前和之后的文本,如下所示: Please enter password: [don't show input] Please re-enter password: [don't show input] 我怎样才能做到这一点? 我正在使用Linux,所以我将无法使用任何Windows库(Windows.h等)。

有取代Linux内核函数的错误

#include <linux/module.h> #include <linux/kernel.h> #include <linux/fs.h> #include <linux/types.h> #define CODESIZE 7 static unsigned char original_code[CODESIZE]; static unsigned char jump_code[CODESIZE] = "\xb8\x00\x00\x00\x00" /* movq $0, %rax */ "\xff\xe0" /* jump *%rax */ ; void (*sync_readahead)( struct address_space *mapping, struct file_ra_state *ra, struct file *filp, pgoff_t offset, unsigned long req_size ) = (void (*)(struct address_space *, struct […]

从内核模块创buildsysfs条目

我想传递一个string> 1024个字符到我的模块(文件系统)。 由于内核参数限制为1024个字符, 有人build议使用sysfs来代替。 我试图在我的super.c类中包含这个例子,在我的模块的sysfs中创build一个string'filename'和string'code'条目。 static decl_subsys(myfs, NULL, NULL); struct myfs_attr { struct attribute attr; char *value; }; static struct myfs_attr fname = { .attr.name="filename", .attr.owner = THIS_MODULE, .attr.mode = 0644, .value = "/my/test/path", }; static struct myfs_attr code = { .attr.name="code", .attr.owner = THIS_MODULE, .attr.mode = 0644, .value = "0101", }; 编译我的模块时,我得到了很多错误(第41行是decl_subsys): fs/myfs/super.c:41:26: error: […]

如何将matrix_keypad.h文件用于自定义键盘驱动程序?

我可以用input_dev来模拟一个自定义键盘(来自input.h) //an example with just one key. button_dev = input_allocate_device(); if (!button_dev) { printk(KERN_ERR "button.c: Not enough memory\n"); error = -ENOMEM; goto err_free_irq; } button_dev->evbit[0] = BIT_MASK(EV_KEY); button_dev->keybit[BIT_WORD(BTN_0)] = BIT_MASK(BTN_0); 或者我将不得不使用matrix_keypad头文件?如果是,那么如何?

哪一个selectwaitpid / wait / waitid?

在fork之后我想在subprocess中使用execl。 execl将执行脚本,这将需要大约120秒的时间。 我尝试了几乎所有与waitpid,waitid和waitid不同的参数(0,WNOHANG等)的组合,但是在所有情况下我都得到了-1的返回值。 所以我想知道在什么时候我需要使用哪个等待函数? 所以我可以集中在一个等待function,使其工作。 我从我的日志中观察到的一个更有趣的事情是,当我在subprocess中什么都不做时,它显示我的父线程是孤立的。 我不知道怎么可能? 我的父母线程如何成为孤儿? #include <errno.h> #include <stdio.h> #include <stdlib.h> #include <sys/wait.h> #include <unistd.h> int main(void) { pid_t Checksum_pid = fork(); if (Checksum_pid < 0) printf("Fork Failed\n"); else if (Checksum_pid == 0) { execl("/bin/ls","ls",(char *)NULL) ; exit(EXIT_FAILURE); } else { int childStatus; pid_t returnValue = waitpid(Checksum_pid, &childStatus, 0); if (returnValue > […]

如何编写内核模块在内核中查找路由表和arpcaching?

我想写一个模块来查找内核中的路由表以获取网关IP,并使用ip查找ARPcaching来获取网关的MAC地址。

在您为INTEL C ++编译器(Linux)configuration的searchpath中找不到文件可执行文件

我想使用code :: blocks来debugging我的c ++代码。 我打开一个新项目并粘贴我的代码。 但是有上面的错误。 说实话,我不知道我的编译器是什么! 当我想运行我的代码时,我写道: g++ -std=gnu++11 mycodename.cpp 在terminal。 如何在Linux中删除以上错误? 一步一步的答案是高度赞赏。 我将编译器从setting…compiler更改为gnu gcc,但错误是关于英特尔编译器!

两个进程如何不通过pipe()来相互交谈?

鉴于此代码: #include <stdio.h> #include <stdlib.h> #include <string.h> #include <sys/wait.h> #include <unistd.h> #define BUF_SIZE 256 int main() { int fd1[2]; int fd2[2]; ssize_t numRead = -1; // remark : working under the assumption that the messages are of equal length const char* messageOne = "Hello world , I'm child number 1\n"; const char* messageTwo = "Hello […]