sizeof

linux socket 常用函数

萝らか妹 提交于 2020-01-13 02:51:39
socket() bind() connect() listen() accept() send() 和recv() sendto() 和recvfrom() close() 和shutdown() getpeername() gethostname() socket() 我们使用系统调用socket()来获得文件描述符: #include<sys/types.h> #include<sys/socket.h> int socket(int domain,int type,int protocol); 第一个参数domain设置为“AF_INET”。 第二个参数是套接口的类型:SOCK_STREAM或 SOCK_DGRAM。第三个参数设置为0。 系统调用socket()只返回一个套接口描述符,如果出错,则返回-1。 [目录] bind() 一旦你有了一个套接口以后,下一步就是把套接口绑定到本地计算机的某一个端口上。但如果你只想使用connect()则无此必要。 下面是系统调用bind()的使用方法: #include<sys/types.h> #include<sys/socket.h> intbind(int sockfd,struct sockaddr*my_addr,int addrlen); 第一个参数sockfd是由socket()调用返回的套接口文件描述符。

【网络编程小结(三)】利用多进程与多线程

∥☆過路亽.° 提交于 2020-01-12 23:35:49
在第一节的例子中,服务器是一个时间获取程序,只要一次write调用就能立刻完成客户端的任务,但是我们要想的是,服务端不一定每次都会这么快的完成任务,所以,要想办法加快服务端的处理速度。 首先可以想到的是并行处理,c++有两种方式,一个是多进程,一个是多线程。下面描述这两种办法。 一、压力测试 我们的客户端应当有能力判断服务端处理的快慢,所以我们要写一个压力测试函数: void request_to_server(int id,const char* ip,const uint16_t port){ int sockfd=socket(AF_INET,SOCK_STREAM,0); const char *id_str=std::to_string(id).c_str(); sockaddr_in addr; bzero(&addr,sizeof(addr)); addr.sin_family=AF_INET; addr.sin_port=htons(port); inet_pton(AF_INET,ip,&addr.sin_addr); connect(sockfd,(const sockaddr*)&addr,sizeof(addr)); const int buffersize=1024; char buf[buffersize]; write(sockfd,id_str

C语言数组

六月ゝ 毕业季﹏ 提交于 2020-01-12 15:56:35
一维数组的定义: 1.数组的数据类型:每一元素占内存空间的字节数。 2.数组的存储类型:内存的动态、 静态存储区或CPU的寄存器。 3.一维数组在内存中占用的字节数为:数组长度X sizeof (基类型)。 一维数组的初始化: 1.静态数组和全局数组自动初始化为0值,否则,是随机数。 2.int a[5] = {62,74,56,88,90} ; 3.更高效的数组初始化方法memset(a, 0,sizeof (a)) ; 一维数组元素的访问: 1.一维数组的引用:数组名[下标] 2.允许快速随机访问:引用时下标允许是int型变量或表达式a[i] 一维数组元素的赋值: 1.方法1:逐个元素赋值。 2.方法2:通过循环语句赋值。 3.更高效的数组赋值方法memcpy(b,a,sizeof(a)) ; 二维数组的定义和初始化: 数组元素的访问与螺旋矩阵: 来源: https://www.cnblogs.com/ZengBlogs/p/12182704.html

C++builder调用存储过程

不问归期 提交于 2020-01-11 19:25:39
TDateTime dt; if(pSocka->Receive(&dt,sizeof(dt)) <= 0) return false; char szStationID[10]={0}; if(pSocka->Receive(szStationID,sizeof(szStationID)) <= 0) return false; AnsiString strSql = "exec ups_StatisticsOfMonth :qtime,:sid,:Remain output"; OutputDebugInfo("发送12个月统计数据:"+strSql,pSocka); m_pAdo->Active = false; m_pAdo->SQL->Clear(); m_pAdo->SQL->Add(strSql); m_pAdo->Parameters->Items[0]->Value = dt; m_pAdo->Parameters->Items[1]->Value = szStationID; m_pAdo->Parameters->Items[2]->Value = 0; m_pAdo->Active = true; STWeight12Month wh={0}; int i = 0; while(!m_pAdo->Eof) { wh.nTonWeight[i] = m

C++获取当前时间

六月ゝ 毕业季﹏ 提交于 2020-01-11 16:14:14
以下方式获取的时间比北京时间晚了八小时: time_t t = time(nullptr); struct tm *p; p = gmtime(&t); char s[50]; strftime(s, sizeof(s), "%Y-%m-%d-%H:%M:%S", p); string current_time = s; photo_data_ = current_time.substr(0, 10); photo_time_ = current_time.substr(11, 20); 用以下代码可解决上述问题: struct timeval tv{}; char buf[64]; gettimeofday(&tv, nullptr); strftime(buf, sizeof(buf) - 1, "%Y-%m-%d %H:%M:%S", localtime(&tv.tv_sec)); 来源: CSDN 作者: hongge_smile 链接: https://blog.csdn.net/hongge_smile/article/details/103934594

小学生都看得懂的C语言入门(5): 指针

落花浮王杯 提交于 2020-01-11 16:03:36
现在已经学到C语言的后面了, 快学完咯.... (一)取地址运算 先来看一下sizeof 计算所占字节 #include<stdio.h> int main() { int a; a=6; printf("%d\n",sizeof(int));//4 printf("%d\n",sizeof(double)); //8 printf("%d\n",sizeof(a));//4 return 0; } 之前 ,我们看到scanf("%d", &x); 中& 表示什么意思? & 是为了获取变量的地址, 它的操作对象必须是变量, #include<stdio.h> int main() { int i=0; printf("%p\n",&i); // 打印地址 return 0; } 得到 000000000062FE4C #include<stdio.h> int main() { int i=0; int j; printf("%p\n",&j); printf("%p\n",&i); return 0; } 得到 000000000062FE48 000000000062FE4C C与8 在16进制下相差4,(c相当于12); 说明在内存中他们两个是紧挨着放的, C语言中分配变量是从顶向下的, 先定义的变量i 的地址更高, 后定义的变量j 的地址更低. #include<stdio

How sizeof operator works in C? [duplicate]

本秂侑毒 提交于 2020-01-11 13:19:54
问题 This question already has an answer here : Output data type of sizeof() operator (1 answer) Closed 11 months ago . In this below code: #include<stdio.h> int main(void) { printf("%d",sizeof(int)); return 0; } When compiled on gcc (Ubuntu 4.8.4-2ubuntu1~14.04.3) 4.8.4 compiler it gives warning: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘long unsigned int’ [-Wformat=] printf("%d",sizeof(int)); Why I am getting this warning? Is it that return type of sizeof is 'long

最短路之spfa系列

给你一囗甜甜゛ 提交于 2020-01-11 13:15:16
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2544 Problem Description 在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的t-shirt。但是每当我们的工作人员把上百件的衣服从商店运回到赛场的时候,却是非常累的!所以现在他们想要寻找最短的从商店到赛场的路线,你可以帮助他们吗? Input 输入包括多组数据。每组数据第一行是两个整数N、M(N<=100,M<=10000),N表示成都的大街上有几个路口,标号为1的路口是商店所在地,标号为N的路口是赛场所在地,M则表示在成都有几条路。N=M=0表示输入结束。接下来M行,每行包括3个整数A,B,C(1<=A,B<=N,1<=C<=1000),表示在路口A与路口B之间有一条路,我们的工作人员需要C分钟的时间走过这条路。 输入保证至少存在1条商店到赛场的路线。 Output 对于每组输入,输出一行,表示工作人员从商店走到赛场的最短时间 Sample Input 2 1 1 2 3 3 3 1 2 5 2 3 5 3 1 2 0 0 Sample Output 3 2 思路:套模板,记得是双向的 1 #include <cstdio> 2 #include <queue> 3 #include <vector> 4 #include <cstring> 5

Struct has different size if the field order is different

时光总嘲笑我的痴心妄想 提交于 2020-01-11 09:35:30
问题 package main import ( "fmt" "unsafe" ) type A struct { a bool b int64 c int } type B struct { b int64 a bool c int } type C struct { } func main() { // output 24 fmt.Println(unsafe.Sizeof(A{})) // output 16 fmt.Println(unsafe.Sizeof(B{})) // output 0 fmt.Println(unsafe.Sizeof(C{})) } Struct A and B have the same fields, but if specified in different order they result in different size. why? Size of struct C is zero. How much memory is allocated by the system for a := C{} ? Thanks. 回答1: 1.

从零开始学习C语言04——数据类型、变量、sizeof运算符

一个人想着一个人 提交于 2020-01-11 08:50:59
C语言程序中,一定会有数据,这个数据就是由数字,单词和字符构成 数字又分整数和浮点数(浮点数就是小数,数学里也称实数) 字符就是键盘上所有的 a b c A B C 这6个是字符 数字 ‘1’ ’ 2’ ’ 3’ 这3个也是字符,但必须得是加了单引号的 + - / {}、 这些符号也是字符 **空格键也是字符 这些都能在ASC表能找到,反之能在ASC表在能找到的就可以是字符 ,ASC是什么,呵呵,这个上网查一下 还有就是单词,也可以说是字符串 就是比如 hello 或者 hello world 记住:字符用单引号表示,字符串用双引号表示 整数不用我说大家也该知道是什么 123 ,0, -234,1000 这些就是整数 浮点数(小数)也就是凡是带小数点的数就是浮点数 12.3 ,0.0,0.23,-7.7 这些就是小数(我还是直接说小数好了,说浮点有点不爽啊) 浮点数所占字节要比整数大,字节就是内存里的东东,这个暂时不需了解 你只需知道小数占的字节要比整数大就可以了,后面字节这个概念很重要 例如123.4和1234 123.4就比1234所占的字节大 说完数据类型我们说变量 C语言把数据存放在变量中,变量就是电脑内存里的一个盒子,用来保存数字或字符 这个盒子里面的东西是变化的,例如我放一个数字1放进这个盒子,这个盒子现在装的是数字1,然后我又放数字2进入