Articles of 结构

在位域的情况下,哪一个更好用,unsigned char或unsigned int,为什么?

我只想知道下面的结构声明。 哪一个更好用于内存分配,为什么? 那么在无符号字符和无符号整数的情况下填充呢? struct data{ unsigned char a:3; unsigned char b:4; }; 和 struct data{ unsigned int a:3; unsigned int b:4; };

向量<struct>上的segfault

我创build了一个结构来保存一些数据,然后声明一个向量来保存该结构。 但是当我做一个push_back我得到该死的段错误,我不知道为什么! 我的结构被定义为: typedef struct Group { int codigo; string name; int deleted; int printers; int subpage; /*included this when it started segfaulting*/ Group(){ name.reserve(MAX_PRODUCT_LONG_NAME); } ~Group(){ name.clear(); } Group(const Group &b) { codigo = b.codigo; name = b.name; deleted = b.deleted; printers = b.printers; subpage = b.subpage; } /*end of new stuff*/ }; 最初,该结构没有复制,构造函数或析构函数。 […]

将一个数组结构初始化为共享内存

我正在创build4个程序,创build一个POSIX共享内存对象,这是一个结构数组,将由其他3个进程共享。 基本上这个项目模拟文件。 程序#1创build该对象。 程序#2将文件名和string作为参数,然后将文件名和string(文件内容)作为一个结构保存到共享内存中,该结构放入数组的可用元素中。 程序#3将列出文件名。 程序#4将search给定的文件并显示其内容。 我遇到的麻烦是初始化一个结构数组到共享内存。 我不断收到以下错误,告诉我我正在使用不正确的方法初始化指针: myformat.c:36: warning: initialization from incompatible pointer type 我已经search了这个主题,发现了一些类似的问题,但没有真正相关的问题。 那么,如何正确地将一个结构数组初始化为共享内存呢? 基于我的研究,我编码如下。 谢谢! PROGRAM#1(myformat.c): #include <stdio.h> #include <stdlib.h> #include <string.h> #include <fcntl.h> #include <sys/shm.h> #include <sys/stat.h> struct MyFiles { char *fileName; char *fileContents; }; int main() { /* the size of shared memory object */ int size = sizeof(struct […]

复制一个没有内容的文件名称的目录结构

我有一个巨大的电影文件的目录结构。 对于这种结构的分析,我想复制整个目录结构,即文件夹和文件,但是我不想复制所有的电影文件,而我想保留文件名。 理想情况下,我得到原始电影文件名的零字节文件。 我试图然后rsync到我的远程机器没有获取链接文件。 任何想法如何做到没有写脚本?

input_event结构描述(来自linux / input.h)

有人可以告诉我什么是由input_event结构使用的数据types的属性? 它在input.h文件中定义如下: struct input_event { struct timeval time; __u16 type; __u16 code; __s32 value; }; 但是没有其他的描述! 即使使用Google,也没有什么意思。 我唯一知道的是, time从纪元给出秒或毫秒, value给出按下button的代码。 但是value财产的value对我来说也不是很清楚。 在我的程序中,每个击键都会产生六个事件。 以下事件是按ENTER键的响应: type=4,code=4,value=458792 type=1,code=28,value=1 type=0,code=0,value=0 type=4,code=4,value=458792 type=1,code=28,value=0 type=0,code=0,value=0 那些是一封信: type=4,code=4,value=458756 type=1,code=30,value=1 type=0,code=0,value=0 atype=4,code=4,value=458756 type=1,code=30,value=0 type=0,code=0,value=0 我想解码真正的字母的价值,但我不明白的属性的含义。 请帮忙!

struct sockaddr_un v / s sockaddr – C(Linux)

struct sockaddr与struct sockaddr_un有什么不同? 我知道我们在客户端 – 服务器模块中使用这些结构来将套接字绑定到套接字地址。我们使用一个cast操作符来接受struct sockaddr_un。 我想知道他们有多么不同/相似,为什么演员呢?

结构填充

我知道编译器没有结构填充,因为CPU可以在一段时间读取一个字(字大小取决于体系结构16/32/64),但我不能理解下面的例子的填充行为。 struct pad { char ch; }; “struct pad”的大小为1字节(但根据填充概念,我怀疑是4字节(32位体系结构)。

初始化指向结构的指针

另一个链接的问题是使用strcpy()分段错误? 我有一个结构: struct thread_data{ char *incall[10]; int syscall arg_no; int client_socket; }; 如何初始化一个指向上面types的结构的指针,并初始化结构内的10个string(incall [])的指针。 我是否首先初始化string,然后是结构。 谢谢。 编辑:我想我使用了错误的词,应该说分配。 其实我把这个结构作为parameter passing给线程。 线程数量不固定,作为参数发送的数据结构对于每个线程必须是唯一的,并且“线程安全”即不能被其他线程改变。

如何从命令行获取当前的Linux进程ID a与shell无关,与语言无关

如何从shell命令行获得当前的进程ID(pid),这是与shell无关的,与语言无关的方式? pidof(8)似乎没有选项来获得调用进程的pid 。 Bash当然有$$ – 但是对于我的通用用法,我不能依赖一个shell(Bash或其他)。 在某些情况下,我不能编写脚本或可编译的程序,所以Bash / Python / C / C ++(等等)将不起作用。 下面是一个具体的用例:我想获得正在运行的,基于Python-Fabric的远程SSH进程(可以避免假设bash正在运行)的pid ,这样我就可以复制和/或创build文件和/或具有唯一文件名的目录(如在mkdir /tmp/mydir.$$ )。 如果我们可以解决面料特定的问题,这是有帮助的,但它不能解决我的长期问题。 对于所有未来场景中的通用用途,我只想要一个返回$$在Bash中提供的命令。

Linux的C:容易&'漂亮'转储/结构的打印输出(如gdb) – 从源代码?

我正在构build一个内核模块中的一些结构,所以我认为如果有一个简单的方法可以打印出结构和它们的值,那么结果会很好 – 下面是我的一个小用户区示例。 假设我们有如下简单的C示例(以bash命令的forms给出): FN=mtest cat > $FN.c <<EOF #include <stdio.h> //printf #include <stdlib.h> //calloc struct person { int age; int height; }; static struct person *johndoe; main () { johndoe = (struct person *)calloc(1, sizeof(struct person)); johndoe->age = 6; asm("int3"); //breakpoint for gdb printf("Hello World – age: %d\n", johndoe->age); free(johndoe); } EOF gcc -g […]