Articles of 结构

参数与Linux中的原型错误不匹配

我有以下函数声明的头文件: extern getEmailDetailsResult * getemaildetails_5(getEmailDetailsInput *, CLIENT *); 在我的.C文件中,函数的定义是 getEmailDetailsResult* getemaildetails_5(inputParams, rqstp) getEmailDetailsInput *inputParams; struct svc_req *rqstp; 当我在Unix中编译我的程序时,编译成功了。 但在Linux(gcc 4.1.2),我得到以下错误"error: argument ârqstpâ doesnât match prototype" 。 具有函数原型的.h文件在编译时由OS生成。 什么可能是在Linux的错误的原因?

Linux C编程

这是我第一次在这里提出问题,所以我希望我不会犯任何错误…我做一个服务器端客户端程序,我有这个错误,当我运行客户端,我有“核心倾倒错误”。 我想我知道错误在哪里,但我不知道如何解决它。 我有2个结构: typedef struct { int pid; int cmd; //1 -login,2-registrar,3-tecla char login[100]; char pw[100]; int tecla; } PEDIDO; typedef struct { int cmd; int res; BONECO *b; } RESPOSTA; 服务器通过命名pipe道向客户端发送数据时的代码: int main(int argc, char *argv[], char *envp[]){ //… i = read(fd, &p, sizeof (p)); printf(">>> Li %d bytes\n", i); printf("User : %s PID […]

Android与其他Linux有什么不同?

任何人都可以build议一些关于Android的内部的详细信息? 我有兴趣知道它与其他Linux的差异,一些Android体系结构的详细视图等。我听过很多零散的信息,例如Surface Flinger , Stage Fright , Wake Locks等,但是我不能把这些信息放在一起,变成对我有意义的东西。 我只需要了解Android的工作方式,但是要详细说明。 我对SDK或NDK不太感兴趣。

为什么默认情况下不包含结构体?

在阅读CERT C编码标准时,我遇到了DCL39-C ,它讨论了为什么像Linux内核那样由于信息泄漏而将解压后的结构返回给用户空间是一个不好的主意。 简而言之,结构通常不是默认打包的,结构成员之间的填充字节通常包含未初始化的数据,因此信息泄漏。 为什么默认情况下不包含结构体? 本指南中提到,这是针对特定体系结构编译器的优化function,我相信。 为什么将结构alignment到一定的字节大小更有效,因为它浪费了内存空间? 另外,为什么C标准没有指定一个标准的方式来请求一个压缩的结构? 我可以使用__attribute__((packed))来问GCC,对于不同的编译器还有其他的方法,但是看起来这个function好像是标准的一部分。

我如何通过结构下载东西

我试图使用该结构来pipe理我的服务器。 比我想像下面的代码。 def get(url): run('wget url') 我想传递一个参数给wget命令,而不是在远程机器上下载那个东西。 但是,这似乎没有工作。 我怎样才能在远程计算机上使用python或fabric做些什么?

通过结构脚本在远程服务器上设置umask

我和一个开发团队一起使用fabric来将代码部署到远程服务器上,每当一个新文件被创build并添加到git repo时,默认权限是-rw–r–r ,这使得其他开发者无法更新这个文件(所有用户都属于同一个主要组)。 我想要的权限是-rw-rw-r (组可写),我试图在fabfile.py run("umask 002")设置“umask 002”,但它不工作。 有没有解决这个问题,除了去编辑/etc/bash.bashrc fab脚本的 [编辑-1] 输出 [devsrv] Executing task 'deploy' [localhost] local: bash -l -c "umask 002" [localhost] local: bash -l -c "git push" Counting objects: 3, done. Delta compression using up to 4 threads. Compressing objects: 100% (2/2), done. Writing objects: 100% (2/2), 279 bytes, done. Total 2 […]

设置tcp头中的最大段大小

我正在把端口扫描仪作为学习练习。 我的问题是我试图设置TCP头中的最大段大小选项(MSS)。 我看了一下tcp.h,但是我很难搞清楚如何设置它。 我希望能有这样的select: tcp_header->mss(32000); 类似于上面的东西是在tcp.h但不是在正确的结构。 不可否认,我对于读取结构定义仍然相当陌生,而且我从tcp.h中得不到多less意义,所以最后我试着把必要的字节添加到TCP头的末尾: struct tcphdr *CreateTcpHeader() { struct tcphdr *tcp_header; tcp_header = (struct tcphdr *)malloc(sizeof(struct tcphdr)+4*sizeof(int)); tcp_header->source = htons(SRC_PORT); tcp_header->dest = htons(DST_PORT); tcp_header->seq = htonl(0); tcp_header->ack_seq = htonl(0); tcp_header->res1 = 0; tcp_header->doff = (sizeof(struct tcphdr))/4; tcp_header->syn = 1; tcp_header->window = htons(4096); tcp_header->check = 0; /* Will calculate the checksum with pseudo-header […]

将细节存储在C结构中

我正在编写C程序来查找函数并计算C文件中函数的行数,并将其存储到结构中。 我已经在下面给出了我的代码。 #include <stdio.h> #include <string.h> #define SIZE 1024 struct fundetails { int nooflines; char *funcname; }s[20]; char *ffname(char *line) { int i=1,j=0; char *dt; char name[SIZE]; strtok(line,"("); dt = strchr(line,' '); if(dt[i] == '*') i++; while(dt[i] != '\0') { name[j]=dt[i]; i++; j++; } name[j] ='\0'; return name; } int main(int argc, char **argv) { […]

C结构错误“不完整的类types的指针是不允许的”

我正在使用Visual Studio 2013专业版,我已经在Kali和Ubuntu的Eclipse上尝试过了。 有更多的地方发生相同的两个错误,但我只会在这里显示一些代码。 我已经看到了几个与同样问题有关的问题。 大部分的答案似乎是结构以前没有定义,虽然我不认为这适用于此。 我也试图把所有的代码放到一个单独的源文件中,这没有任何改变。 Visual Studio强调代码中显示error: pointer to incomplete class type is not allowed ,当我build立项目时,它显示error C2037: left of 'previous' specifies undefined struct/union 'NODE'这些位置logging在下面的代码中。 另一个错误是warning C4133: '=' : incompatible types – from 'NODE *' to 'NODE *' ,位置也在下面注明。 所以当然我的问题是我如何解决这些错误? 来自我的头文件的相关信息: list.h #ifndef LIST_H #define LIST_H typedef struct node{ struct NODE *next; struct NODE […]

Fabric:在目标主机上执行内联Python?

Fabric结构命令适用于fab local grab_from_s3:bucket=… : def grab_from_s3(bucket, path, localfile): s3_connection = S3Connection() s3_bucket = s3_connection.get_bucket(bucket) s3_key = Key(s3_bucket) s3_key.key = path s3_key.get_contents_to_filename(localfile) 当然,如果我把它提供给一个远程目标主机,它将下载到本地主机而不是远程主机。 (即fab staging grab_from_s3:bucket=… )。 我希望存在这些可能性之一: 这个任务可以用最less的编码手段自动运行在远程盒子上,或者 我可以以编程方式检测到目标主机不是本地的,并为远程主机指定结构命令行。 我非常喜欢#1,但还不清楚这是否可能。 关于#2的不清楚的是,现有的Fabric设施是否使得这一切变得容易(即,检测本地/远程主机以及它们是不同的)。 我该怎么办?