char函数

struct sockaddr与struct sockaddr_in ,struct sockaddr_un的区别和联系

ⅰ亾dé卋堺 提交于 2019-12-23 03:45:35
在linux环境下,结构体struct sockaddr在/usr/include/linux/socket.h中定义,具体如下: typedef unsigned short sa_family_t; struct sockaddr { sa_family_t sa_family; /* address family, AF_xxx */ char sa_data[14]; /* 14 bytes of protocol address */ 在linux环境下,结构体struct sockaddr_in在/usr/include/netinet/in.h中定义,具体如下: /* Structure describing an Internet socket address. */ struct sockaddr_in { __SOCKADDR_COMMON (sin_); in_port_t sin_port; /* Port number. */ struct in_addr sin_addr; /* Internet address. */ /* Pad to size of `struct sockaddr'. */ unsigned char sin_zero[sizeof (struct sockaddr) - __SOCKADDR_COMMON_SIZE -

Linux网络通信

孤街醉人 提交于 2019-12-23 03:45:23
使用TCP协议的socket 1.网络字节序 由于在主机存储为小端序,网络传输为大端序,并且在网络中需要读取IP号和端口号,所以发送端要将小端序转为大端序,接收端将大端序转为小端序 #include <arpa/inet.h> uint32_t htonl(uint32_t hostlong); uint16_t htons(uint16_t hostshort); uint32_t ntohl(uint32_t netlong); uint16_t ntohs(uint16_t netshort); 表示host,n表示network,l表示32位长整数,s表示16位短整数。 2. IP地址转换函数 #include <arpa/inet.h> int inet_pton(int af, const char *src, void *dst); const char *inet_ntop(int af, const void *src, char *dst, socklen_t size); 3.构造一个sockaddr struct sockaddr_in servaddr; bzero(&servaddr, sizeof(servaddr)); servaddr.sin_family = AF_INET; servaddr.sin_addr.s_addr = htonl

课程第六次作业

非 Y 不嫁゛ 提交于 2019-12-23 02:17:43
课程第六次作业 题目要求; 本次作业要求将四则运算的核心部分采取栈的知识进行解决。即表达式生成的合法性检验、表达式结果计算。 学习C++界面编程,可以学QT、MFC或者VS,选择其一即可,用博客记录学习到的知识以及心得体会。 界面的不足之处: 界面没有实现可以下一题的操作,没有锁定算式不能被操作,所以容易被误操作。使输出答案。 学习链接 git链接 界面展示: 代码展示: void CMFCApplication2Dlg::OnBnClickedButton1() { UpdateData(); //expression ;窗口添加的变量 Problem p; tmp = p.generateExpression(); expression = tmp.c_str();//将string转变为Cstring UpdateData(false); } void CMFCApplication2Dlg::OnBnClickedButton2() { UpdateData(); Problem p; rightanswer = p.calculateResult(tmp);//tmp为全局变量实现题目的传入 if (answer == rightanswer)//answer为用户在界面输入的答案(窗口添加的变量),rightanswer为正确的答案 { correctnum++;/

C 输入 & 输出

心已入冬 提交于 2019-12-22 14:59:33
C 输入 & 输出 当我们提到 输入 时,这意味着要向程序填充一些数据。输入可以是以文件的形式或从命令行中进行。C 语言提供了一系列内置的函数来读取给定的输入,并根据需要填充到程序中。 当我们提到 输出 时,这意味着要在屏幕上、打印机上或任意文件中显示一些数据。C 语言提供了一系列内置的函数来输出数据到计算机屏幕上和保存数据到文本文件或二进制文件中。 标准文件 C 语言把所有的设备都当作文件。所以设备(比如显示器)被处理的方式与文件相同。以下三个文件会在程序执行时自动打开,以便访问键盘和屏幕。 标准文件 文件指针 设备 标准输入 stdin 键盘 标准输出 stdout 屏幕 标准错误 stderr 您的屏幕 文件指针是访问文件的方式,本节将讲解如何从屏幕读取值以及如何把结果输出到屏幕上。 C 语言中的 I/O (输入/输出) 通常使用 printf() 和 scanf() 两个函数。 scanf() 函数用于从标准输入(键盘)读取并格式化, printf() 函数发送格式化输出到标准输出(屏幕)。 实例 #include <stdio.h> // 执行 printf() 函数需要该库 int main() { printf("菜鸟教程"); //显示引号中的内容 return 0; } 编译以上程序,输出结果为: 菜鸟教程 实例解析: 所有的 C 语言程序都需要包含 main()

SQL字符串拼接

坚强是说给别人听的谎言 提交于 2019-12-22 10:08:53
本文转载自: https://www.cnblogs.com/forget406/p/5506394.html 作者:forget406 转载请注明该声明。   不同的数据库,相应的字符串拼接方式不同,通过对比加深一下记忆。 一、MySQL字符串拼接   1、CONCAT函数 语法格式:CONCAT( char c1, char c2, ..., char cn) ,其中char代表字符串,定长与不定长均可以   1.1)连接两个字符串      1.2)连接多个字符串      2、"+"操作符   2.1)连接两个字符串      2.2)连接多个字符串      3、假如其中一个字段为NULL,则用结果用空格代替NULL。      二、Oracle字符串拼接   1、CONCAT函数   语法格式:CONCAT( char c1, char c2) ,其中char代表字符串,定长与不定长均可以   1.1)连接两个字符串      1.2)连接多个字符串      使用CONCAT函数的嵌套实现。   2、"||"操作符   1.1)连接两个字符串      1.2)连接多个字符串      3、假如其中一个字段为NULL,则用结果用空格代替NULL。    来源: CSDN 作者: w36680130 链接: https://blog.csdn.net/w36680130

20145338 索朗卓嘎《信息安全系统设计基础》第10学习总结

风流意气都作罢 提交于 2019-12-22 07:22:07
20145338 索朗卓嘎《信息安全系统设计基础》第10学习总结 代码 1.cp #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <fcntl.h>//宏和open define BUFFERSIZE 4096//存储器容量 #define COPYMODE 0644//复制长度 void oops(char , char ); int main(int argc, char *argv[]) { int in_fd, out_fd, n_chars;//三个描述符值 char buf[BUFFERSIZE]; if (argc != 3) { fprintf(stderr, "usage: %s source destination\n", argv); exit(1); } / 检查cp的第一个参数,要复制的文件,用open打开,in_fd为open返回的描述符*/ if ((in_fd = open(argv[1], O_RDONLY)) == -1) oops("Cannot open ", argv[1]); / 检查cp的第二个参数,复制的目的地址,用create在目的地址创建新文件,out_fd为open返回的描述符 / if ((out_fd = creat(argv[2],

简单fcgi程序

人走茶凉 提交于 2019-12-22 07:13:31
1、头文件 #include <fcgi_stdio.h> 2、while(FCGI_Accept()>=0)//这里进入循环,前台每请求一次fcgi服务,就循环一次 循环内处理: char *query_string=getenv("QUERY_STRING"); 3、从获得的query_string解析查询字段,进行兴许操作。 4、用printf返回处理结果给webserver,再由webserver将结果返回给client。 (这里的printf函数是在fcgi_stdio.h中又一次定义了的) 附:fcgi_stdio.h /* * fcgi_stdio.h -- * * FastCGI-stdio compatibility package * * * Copyright (c) 1996 Open Market, Inc. * * See the file "LICENSE.TERMS" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * * $Id: fcgi_stdio.h,v 1.5 2001/06/22 13:21:15 robs Exp $ */ #ifndef _FCGI_STDIO #define

Unix环境高级编程学习笔记(三)

穿精又带淫゛_ 提交于 2019-12-22 07:12:14
第五章 标准IO库 1、流和FILE对象: 有两个函数可以改变流的定向:freopen函数可以清除一个流的定向;fwide函数可以设置流的定向 #include<stdio.h> #include<wchar.h> int fwide(FILE *fp, int mode); //若流是宽定向的则返回正值,若流是字节定向的则返回值负值,未定向返回0 若mode为负,字节定向;mode为正,宽定向;mode为0,不定向。 fwide并不改变已定向流的定向,无出错返回。 当打开一个流时,标准IO函数fopen返回一个指向FILE对象的指针,该对象是一个结构,包含了标准IO库为管理该流所需的所有信息,包括:文件描述符,该流的缓冲区指针,缓冲区长度等等。我们称FILE*对象为文件指针。 2、标准输入、标准输出、标准出错:stdin、stdout、stderr,定义在<stdio.h>中,注意这三个对象是流。 3、缓冲:全缓冲、行缓冲、不带缓冲 我可以调用以下两个函数更改缓冲类型:#include<stdio.h> void setbuf(FILE* restrict fp, char *restrict buf); int setvbuf(FILE* restrict fp, char* restrict buf, int mode, size_t size); 成功返回0,否则返回非0值

sql to_char 日期转换字符串

喜你入骨 提交于 2019-12-22 01:07:30
sql to_char 日期转换字符串 1、转换函数 与date操作关系最大的就是两个转换函数:to_date(),to_char() to_date() 作用将字符类型按一定格式转化为日期类型: 具体用法:to_date(‘2004-11-27’,‘yyyy-mm-dd’),前者为字符串,后者为转换日期格式,注意,前后两者要以一对应。 如;to_date(‘2004-11-27 13:34:43’, ‘yyyy-mm-dd hh24:mi:ss’) 将得到具体的时间 多种日期格式: YYYY:四位表示的年份 YYY,YY,Y:年份的最后三位、两位或一位,缺省为当前世纪 MM:01~12的月份编号 MONTH:九个字符表示的月份,右边用空格填补 MON:三位字符的月份缩写 WW:一年中的星期 D:星期中的第几天 DD:月份中的第几天 DDD:年所中的第几天 DAY:九个字符表示的天的全称,右边用空格补齐 HH,HH12:一天中的第几个小时,12进制表示法 HH24:一天中的第几个小时,取值为00~23 MI:一小时中的分钟 SS:一分钟中的秒 SSSS:从午夜开始过去的秒数 to_char():将日期转按一定格式换成字符类型 SQL> select to_char(sysdate,‘yyyy-mm-dd hh24:mi:ss’) time from dual; TIME 2004

汉诺塔的图解递归算法

折月煮酒 提交于 2019-12-21 20:54:10
原文链接:(转载请注明出处) https://dmego.me/2016/10/16/hanoi 一.起源:   汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。 二.抽象为数学问题:   如下图所示,从左到右有A、B、C三根柱子,其中A柱子上面有从小叠到大的n个圆盘,现要求将A柱子上的圆盘移到C柱子上去,期间只有一个原则:一次只能移到一个盘子且大盘子不能在小盘子上面,求移动的步骤和移动的次数 解:(1)n == 1       第1次 1号盘 A---->C sum = 1 次 (2) n == 2       第1次 1号盘 A---->B        第2次 2号盘 A---->C       第3次 1号盘 B---->C sum = 3 次   (3)n == 3         第1次 1号盘 A---->C         第2次 2号盘 A---->B         第3次 1号盘 C---->B         第4次 3号盘 A---->C         第5次 1号盘 B---->A         第6次 2号盘 B-