Tag: linux

是否存在可用于在POSIX程序中计算TCP段校验和的预先存在的函数或代码

我正在写一个小POSIX程序,我需要计算TCP段的校验和,我想使用现有的函数,以避免自己写一个。 像(伪代码)的东西: char *data = …. u16_integer = computeChecksum(data); 我在网上搜索但我找不到正确的答案,有什么建议吗?

在Ubuntu中的Directory中列出文件

我试图列出当前目录的父目录中的文件,但是当我尝试从终端执行此程序时,我得到分段错误..我做错了什么? 这是代码: #include #include #include int main(int argc, char *argv[]) { struct dirent *dirpent; DIR *dirp; if(argc!=2) { printf(“Cant continue with the program\n”); return 0; } dirp= opendir(argv[1]); if(dirp) { while(dirpent=readdir(dirp) !=NULL) printf(“%s\n”,dirpent->d_name); closedir(dirp); } return 0; }

gnu gdb malloc返回不可访问的指针

运行一些代码后,gdb调试会话中的malloc返回不可访问的地址。 首先在主要function开始时rest。 一切都好。 Breakpoint 9, main (argc=5, argv=0x7fffffffe418) at src/ose/sdv/ose_sdv/linux/main.c:557 557 char *cfgfile = NULL; (gdb) call malloc(4) $50 = 23293968 (gdb) x 23293968 0x1637010: 0x00000000 (gdb) c 在运行一些行后,它开始返回无法访问的内存地址,该地址从0xffffffff~开始 Program received signal SIGINT, Interrupt.0x00007ffff70c1f4d in read () from /lib64/libc.so.6 (gdb) call malloc(4) $52 = -1811110576 (gdb) x -1811110576 0xffffffff940ca550: Cannot access memory at address 0xffffffff940ca550 […]

sockaddr结构 – (sys / socket.h)

我整天都在读sys / socket.h ,最后开始理解它,现在开始使用它,但是,我不知道为什么我不能为sockaddr结构的sa_family成员赋值。 规格sockaddr结构: struct sockaddr{ sa_family_t sa_family address family char sa_data[] socket address (variable-length data) }; 数据类型: sa_family_t – 无符号整数类型(2-4个字节) 价值观: Name Purpose Man page AF_UNIX, AF_LOCAL Local communication unix(7) AF_INET IPv4 Internet protocols ip(7) AF_INET6 IPv6 Internet protocols ipv6(7) AF_IPX IPX – Novell protocols AF_NETLINK Kernel user interface device netlink(7) AF_X25 ITU-T […]

dlopen()设置errno吗?

一切都在标题中。 手册页没有说什么。 一些谷歌报告有些人在dlopen之后检查errno,但只是少数并且有各种结果。 该函数确实返回成功/非成功值,但应该如何找出失败的原因。 那么dlopen()设置errno吗? 那么,在哪里定义了不同的errno值? 如果没有,应该用什么来检查导致失败的原因?

为什么程序不会从2参数文件读取?

因此,分配是使用要搜索的输入文件和要搜索的输入来实现子字符串搜索程序。 我创建了以下代码: #include #include int main(int argc,char *argv[]) { FILE *fp; fp = fopen(argv[1],”r”); if (fp == NULL) { printf(“Error”); return 0; } char* tmpp[100]; int count = 0; char* nexts = argv[2]; char* tmp = fgets(tmpp,100,fp); while(tmp = strstr(tmp,nexts)) { count++; tmp++; } printf(“%d\n\n”,count); fclose(fp); return 0; } 程序编译但是当我在ubuntu终端中实现它时: echo “aabb” >beta ./a.out beta […]

有选择地抑制glibc链接警告?

glibc使用以下“技术”来生成链接警告…… #define link_warning(symbol, msg) \ __make_section_unallocated (“.gnu.warning.” #symbol) \ static const char __evoke_link_warning_##symbol[] \ __attribute__ ((used, section (“.gnu.warning.” #symbol __sec_comment))) \ = msg; 对于由此生成的特定链接警告,是否有任何命令行开关可以传递给ld或gcc以抑制它? (对于编译时警告,你可以使用`#pragma diagnostic foo ignore来抑制)

无法将Java客户端连接到C服务器

我有一个用C编写的非常简单的服务器和一个用Java编写的同样简单的客户端。 当我在同一台计算机上运行它们时,一切正常,但是当我尝试在计算机A和计算机B上的客户机上运行服务器时,我从java客户端收到错误IOException连接被拒绝 。 我似乎无法找出发生了什么,有什么想法吗? 我甚至关闭了防火墙,但问题仍然存在。 服务器。 #include #include #include #include #include #include #define PORT 3557 #define BUF 256 int main(int argc, char *argv[]) { struct sockaddr_in host, remote; int host_fd, remote_fd; int size = sizeof(struct sockaddr);; char data[BUF]; host.sin_family = AF_INET; host.sin_addr.s_addr = htonl(INADDR_ANY); host.sin_port = htons(PORT); memset(&host.sin_zero, 0, sizeof(host.sin_zero)); host_fd = socket(AF_INET, SOCK_STREAM, 0); […]

使用比libc更新的linux头文件构建

我想使用自Linux 3.14以来可用的新SCHED_DEADLINE调度策略编写程序。 我开始尝试使用sched_setattr函数的简单程序。 #include int main(void) { // struct sched_attr attr; // attr.size = sizeof(struct sched_attr); // attr.sched_policy = SCHED_DEADLINE; sched_setattr(0, (void*)0, 0); return 0; } 但是在编译时我收到以下错误: $gcc dead.c dead.c: In function ‘main’: dead.c:8:2: warning: implicit declaration of function ‘sched_setattr’ [-Wimplicit-function-declaration] sched_setattr(0, (void*)0, 0); ^~~~~~~~~~~~~ /tmp/ccGxWxZE.o: In function `main’: dead.c:(.text+0x19): undefined reference to `sched_setattr’ collect2: […]

将Windows串行程序移植到Linux

我没有得到任何答案我的上一个问题( 在Debian Gnu / Linux中的Usb-serial编写和读取数据问题 )所以我现在正在尝试不同的方法。 我将我的仪表插入Windows,运行专有程序并检查COM端口设置设置是否在这里 。 然后我根据这篇文章写了一些代码。 这就是我所拥有的 #include #include #include #include #include #include #define DEVICE “/dev/ttyUSB0” #define WRITE_SPEED B1200 #define READ_SPEED B1200 #define PARITY ~PARENB #define STOPBITS ~CSTOPB #define DATASIZE CS8 #define HARDWARE_FLOW_CONTROL ~CRTSCTS #define RECEIVER CREAD #define MODEM_CONTROL_LINES CLOCAL #define START_STOP_INPUT_CONTROL IXON #define START_STOP_OUTPUT_CONTROL IXOFF #define ANY_CHARACTER_RESTORE_STOPPED_OUTPUT ~IXANY #define CANONICAL_MODE ~ICANON […]