文章目录

茶屋Teahouse

Every time you lie my place

结构体

引子 设计程序时,最重要的步骤之一就是选择表示数据的方法。在许多情况下,简单变量甚至是数组还不够。为此,C提供了结构变量(structure variable)提高表示数据的能力,它能够创造新的形式。 建立结构体声明 小栗子 需求:需要打印一份图书目录。里面包含每本书的各种信息:书名、作者、出版社、版权日期和价格。其中一些元素(例如书名和作者)可以储存在字符数组中,其他项目需要一个int或者float。如果使用5哥不同的数组分别记录每一项都比较繁琐,尤其是要创建多份列表:一份按书名排序、一份按作者排序、一份按照价格排序等。如果能把图书目录的信息都包含在一个数组里更好,其中每个元素包含一本书的相关信息。 因此,就需要一种既能包含字符串也能包含数字的数据形式,而且还要保持各信息的独立。结构体就满足这种情况下的需求。 struct Book { /* 结构体模板:标记为Book (我们通常使用首字母大写的方式来标识结构体) */ char title[128]; // 成员 or 字段 char author[40]; char publisher[256]; int date; float....

Linux 搭建FTP服务 有更新!

简介 想要在linux上搭建ftp服务是十分简单的,所以此贴并不在于安装服务,而是怎样去调试,使得我们对ftp的配置更加详细、娴熟,也是作为一个记录贴 配置 yum install -y vsftpd // 不多说,安装ftp服务(系统版本: Centos7) 在vsftpd安装完成后,会在etc目录下生成一个目录/etc/vsftpd ftpusers // FTP黑名单 不受配置影响 比user_list优先级高 user_list // 取决于 userlist_enable userlist_deny 配置 vsftpd.conf // ftp 服务配置文件 vsftpd_conf_migrate.sh // 配置文件迁移脚本 vsftpd.conf 默认配置 匿名用户使用的登录名为ftp或anonymous,口令为空; 匿名用户不能离开匿名用户家目录; 本地用户的登录名为本地用户名,密码为此用户的密码; 本地用户可以在自己的家目录中进行读写操作; 本地用户可以离开家目录切换至有权限访问的其他目录,并在权限允许的情况下进行上传/下载 /etc/vsftpd/ftpuse....

docker-从开机到关机 有更新!

文如标题 前段时间学了学docker(基础),忘了做笔记。一段时间没有使用,遂忘之。 于是就想重新学一学,并把没有写的笔记补上 前提 使用 docker images 查看当前docker中的所有镜像,如图 在保证有镜像存在后我们就可以开始后面的操作了 启动 在我眼里,docker就像一个vmware,镜像就是字面意义上的镜像。但要是想真正意义上的使用,就需要创建虚拟机并且开机,在docker也是如此。 但实际上呢,docker容器并不是一个虚拟的操作系统,而是一个单独的进程以及运行环境。docker的开发人员也一直主张docker应该只运行一个进程。比如,docker run 就是为了运行一个进程。当一个进程结束了,那么docker容器也就结束了 启动一个docker进程 docker run: 创建一个新的容器并运行一个命令 docker run [OPTIONS] IMAGE [COMMAND] [ARG...] docker run centos:7 (注:由于没有运行任何命令,所以在命令执行完毕后docker会自动关闭容器) 这个命令的意思就创建一个容器,运行空命令 ....

Centos 搭建DNS服务 有更新!

简介 由于dns服务的运行过程网络上有很多,随便搜搜就能找到dns的工作流程,在这里就不多做赘述了,主要是讲怎么配置 使用Centos搭建dns服务需要使用bind服务,所以我们需要先使用yum安装bind 系统 主机IP地址 Centos7(Server)192.168.31.148 Ubuntu(Client)192.168.31.234 配置 yum install -y bind //安装bind服务 如果安装失败可能是因为yum源的原因,可以试试更换yum源为国内源,配置文件在/etc/yum.repos.d/下 bind服务会产生一些文件 /etc/named.conf /etc/named.rfc1912.zones 这两个文件是dns的配置文件 options { listen-on port 53 { localhost; }; // 监听本地端口53 localhost代表本地所有IP地址 directory "/var/named"; // 域名解析配置文件地址 allow-query { localhost; any; }; // 允许查询地址 为....

axios post方法提交数据后台显示null 有更新!

前提 前端的登录,使用 axios 将用户信息使用 post 方式提交的后端 使用技术 SpringBoot axios (单文件) 问题 在使用 axios 的 post 方法向后台传递数据时,后台显示 null 解决 解析 前端 axios.post(’/login’, { username: "小猪佩奇" }) .then(function (response) { console.log(response); }) .catch(function (error) { console.log(error); }); 后端 @RequestMapping("/login") @ResponseBody public String login(String username) { System.out.println(username); return username; } 看起来好像可以接收到数据,并将数据返回到前端。但在实际测试中却发现了拦截器拦截到了请求,但是却没有捕获数据,显示为 null 这令我百思不得姐,原以为是我的前端代码写的有问题,于是修改了一下,却还是得....

[头脑风暴]指针与函数还能擦出怎样的火花 有更新!

Q 有一个名为selectMode的函数,它本身有一个char类型的参数,返回值是一个函数指针。这个函数指针也有两个参数,并且返回值类型为整形 int *fp(int, int) selectMode(char); 想法很好,但是编译器却一点都看不懂,因为这应该是两个语句,被糅杂到一行里,所以它就直接报错了 那我们一步一步来解析 首先,这个函数名为selectMode,所以我们要以selectMode为主体去写 第二,selectMode函数有一个char类型的参数 selectMode(char); 第三,函数的返回值是一个函数指针 *selectMode(char); 第四,函数指针也有两个int类型参数 (*selectMode(char))(int, int); 最后,返回值为int类型 int (*selectMode(char))(int, int); 这实际上就是函数指针与指针函数的结合体,在指针函数里套用函数指针 带入到实际应用中,通过selectMode的形参确定返回的是什么指针 int (*selectMode(char op))(int, int) { ....