应用编程参考图书
书名 | ISBN | 作者 | 出版社 | 出版日期 | 备注 |
---|---|---|---|---|---|
UNIX环境高级编程 第3版 | 9787115516756 | [美]W.理查德·史蒂文斯 | 人民邮电出版社 | 2019年10月 | P |
UNIX编程艺术 | 9787121176654 | [美]埃瑞克.S.理曼德 | 电子工业出版社 | 2021年02月 | |
Linux高性能服务器编程 | 9787111425199 | 游双 | 机械工业出版社 | 2013年06月 | P |
书名 | ISBN | 作者 | 出版社 | 出版日期 | 备注 |
---|---|---|---|---|---|
UNIX环境高级编程 第3版 | 9787115516756 | [美]W.理查德·史蒂文斯 | 人民邮电出版社 | 2019年10月 | P |
UNIX编程艺术 | 9787121176654 | [美]埃瑞克.S.理曼德 | 电子工业出版社 | 2021年02月 | |
Linux高性能服务器编程 | 9787111425199 | 游双 | 机械工业出版社 | 2013年06月 | P |
Shell编程中常用的文件描述符有3个:
0:stdin,标准输入,默认指的是键盘输入
1:stdout,标准输出,默认指的是屏幕输出
2:stderr,标准错误输出,默认值得是屏幕输出
重定向简单例子
命令举例 含义
cmd > file 把 stdout 重定向到 file 文件中
cmd >> file 把 stdout 重定向到 file 文件中(追加)
cmd 1> fiel 把 stdout 重定向到 file 文件中
cmd > file 2>&1 把 stdout 和 stderr 一起重定向到 file 文件中
cmd 2> file 把 stderr 重定向到 file 文件中
cmd 2>> file 把 stderr 重定向到 file 文件中(追加)
cmd >> file 2>&1 把 stderr 和 stderr 一起重定向到 file 文件中(追加)
cmd < file >file2 cmd 命令以 file 文件作为 stdin,以 file2 文件作为 stdout
cat <>file 以读写的方式打开 file
cmd < file cmd 命令以 file 文件作为 stdin
cmd << delimiter Here document 从 stdin 中读入,直至遇到 delimiter 分界符
1 | //使用read命令读取一行数据 |
1
2
3
4
5#使用read命令读取一行数据
cat datafile.txt | while read myline
do
echo "LINE:"$myline
done
1
2
3
4
5#读取一行数据
cat datafile.txt | while myline=$(line)
do
echo "LINE:"$myline
done
1
2
3
4
5#读取一行数据
while myline=$(line)
do
echo "LINE:"$myline
done < datafile.txt
1
2
3
4
5
6
7#使用read命令读取变量数据
cat datafile.txt | while read paraa parab parac
do
echo "PARAA:"$paraa
echo "PARAB:"$parab
echo "PARAC:"$parac
done
1
2
3
4
5
6
7#使用read命令读取变量数据
while read paraa parab parac
do
echo "PARAA:"$paraa
echo "PARAB:"$parab
echo "PARAC:"$parac
done < datafile.txt
书名 | ISBN | 作者 | 出版社 | 出版日期 | 备注 |
---|---|---|---|---|---|
Spring Boot源码解读与原理分析 | 9787115601377 | LinkedBear | 人民邮电出版社 | 2023年02月 | |
Spring Boot3核心技术与最佳实践 | 9787121452901 | 周红亮 | 电子工业出版社 | 2023年04月 | Z |
Spring Boot实战 | 9787115433145 | [美]克雷格·沃斯 | 人民邮电出版社 | 2021年07月 | W |
书名 | ISBN | 作者 | 出版社 | 出版日期 | 备注 |
---|---|---|---|---|---|
Java核心技术 卷1:开发基础(原书第12版) | 9787111706410 | [美]凯·S.霍斯特曼 | 机械工业出版社 | 2022年06月 | Z |
Java核心技术 卷2:高级特性(原书第12版) | 9787111719748 | [美]凯·S.霍斯特曼 | 机械工业出版社 | 2023年03月 | Z |
Java实战 第2版 | 9787115521484 | [英]拉乌尔 | 人民邮电出版社 | 2019年12月 | W |
Java8实战 | 9787115521484 | [英]拉乌尔 | 人民邮电出版社 | 2019年12月 | W |
剑指Java 核心原理与应用实践 | 9787121436642 | 尚硅谷教育 | 电子工业出版社 | 2022年06月 | W |
简单介绍STL对集合操作有标准的算法:
针对这里提及的四个集合运算必须特别注意:
- 1、第一个算法需保证第一集合和第二集合有序,并从小到大排序,内部使用默认“<”操作符比较元素大小;
- 2、第二个算法需保证第一集合和第二集合有序,排序方式参照Compare确定,内部使用Compare比较元素大小。
在C++11之前,要实现函数对象或者仿函数,主要参考《C++设计新思维》中的Loki库,它采用模板推导的方式来实现。虽然Loki可以模拟函数对象,但其代码看起来比较晦涩,使用又不方便。在C++11以后,开始原生支持函数对象,新标准中的用法简单清晰,所有的可调用对象有了统一的调用方式,极易上手。本文总结函数对象的各种使用方法。
1 | #include <functional> |
类模板std::function是通用多态函数封装器。std::function的实例能存储、复制及调用任何可调用目标,包括函数、lambda表达式、bind表达式或其他函数对象,还有指向成员函数指针和指向数据成员指针。
存储的可调用对象被称为std::function的目标。若 std::function不含目标,则称它为空。调用空std::function的目标导致抛出std::bad_function_call异常。
我们首先看下面的这个例子,它可编译也可执行,最终结果是“TDemo::print 55”。有理由推断,实例化一个对象时,编译器自动将55这个整数转换成了“class TDemo”。类TDemo定义了一个单参数构造函数,而C++标准中,“单参数构造函数,可以完成从形参到该类型的一个隐式转换”,所以编译器能够完成从int类型到TDemo的类型转换。
1 | #include <iostream> |
强制类型转换关闭或挂起了正常的类型检查。强烈建议避免使用强制类型转换,不依赖类型转换也能写出很好的C++程序。
这个建议在如何看待 reinterpret_cast 的使用时非常重要。此类强制转换总是非常危险的。相似地,使用价格const_cast也总是预示着设计权限。设计合理的系统应不需要使用强制转换抛弃const特性。其他的强制转换,如static_cast和dynamic_cast,各有各的用途,但都不应频繁使用。每次使用强制转换前,程序员应该仔细考虑是否还有其他不同的方法可以达到同一目的。如果非强制转换不可,则应限制强制转换值的作用域,并且记录所有假定涉及的类型,这样能减少错误发生的机会。
书名 | ISBN | 作者 | 出版社 | 出版日期 | 备注 |
---|---|---|---|---|---|
C++ Primer 中文版 第5版 | 9787121155352 | [美]李普曼 | 电子工业出版社 | 2013-09-01 | P |
C++ Templates 第2版 中文版 | 9787115601513 | [美]范德沃德,约祖蒂斯 | 人民邮电出版社 | 2024-01-01 | |
C++ Templates 第2版 英文版 | 9787121155352 | [美]范德沃德,约祖蒂斯 | 人民邮电出版社 | 2018-05-01 | P |
C++ Templates 中文版 | 9787115479938 | [美]范德沃德,约祖蒂斯 | 人民邮电出版社 | 2013-04-01 | P |
深入应用C++11:代码优化与工程级应用 | 9787111500698 | 祁宇 | 机械工业出版社 | 2015-05-01 | P,JV |
深入理解C++11:C++ 11新特性解析与应用 | 9787111426608 | Michael Wong | 机械工业出版社 | 2013-06-01 | P,JV |
现代C++语言核心特性解析 | 9787115564177 | 谢丙堃 | 人民邮电出版社 | 2021-10-01 | P,JV |
学习C++20(中文版) | 9787302625438 | [美]Paul J. Deitel,[美]Harvey M. Deitel | 清华大学出版社 | 2023-05-01 | |
标准C++输入输出流与本地化 | 9787115090522 | 万东旭,陈冀康 | 人民邮电出版社 | 2001-04-01 | P |
C++ Core Guidelines解析 | 9787302635772 | [德]赖纳·格林 | 清华大学出版社 | 2023-07-01 |
书名 | ISBN | 作者 | 出版社 | 出版日期 | 备注 |
---|---|---|---|---|---|
C和指针 | 9787115522689 | [美]肯尼斯·里科 | 人民邮电出版社 | 2020-09-01 | P |
C陷阱与缺陷 | 9787115521279 | [美]安德鲁·凯尼格 | 人民邮电出版社 | 2020-08-01 | P |
C专家编程 | 9787115521323 | [美]彼得·范德林登 | 人民邮电出版社 | 2020-09-01 | P |
C语言接口与实现 创建可重用软件的技术 | 9787115402523 | [美]戴维 R.汉森 | 人民邮电出版社 | 2022-07-01 |
本文记录使用supervisor部署nginx的方法。
上文 supervisor基本使用方法教程,我们重点了supervisor的基本使用方法,并未对它进行过多的展开。我们知道supervisor有三个重要的部分 supervisord、supervisorctl、inet_http_server 组成,但我认为隐藏在三部分后面的配置文件,才需要重点关注和学习,毕竟它控制着所有的表现属性。为了比较好的掌握supervisor的使用,本文我们对supervisor的配置文件进行重点分析。
Supervisor is a client/server system that allows its users to monitor and control a number of processes on UNIX-like operating systems.
Supervisor是一个在类UNIX系统上,监控控制大量进程的客户端/服务端系统。其主要功能包括程序自动启动、程序奔溃后自动重启,指定进程数目等等。本文是Supervisor安装、配置和使用的简单教程。
glibc是标准C库的GNU实现。我们采用C/C++所写的程序,运行时基本都依赖与它。如果我们想看当前机器glibc的源代码,首先需要知道当前机器glibc的版本号,然后到glibc的官网下载对应版本的源代码。
目前现代c++的主要标准有c++11/14/17/20/23,我经常使用Debian/Ubuntu的不同版本,有时候想知道当前g++默认c++标准。本文就是记录下查看标准的两种方法。
当前的工作与SVN有关,今天使用SVN库编写了一个小程序,编译代码时发现编译器告警:”warning: ‘svn_client_ls2’ is deprecated (declared at /home/svn/apps/svn/include/subversion-1/svn_client.h:4942)”。
1 | svn@linux-rwdx:~/objs/motadou> make |