摘要:目录1. makefile基本语法复习2. 命令前提目标 order-only prerequisites3. 例子在makefile中,有时会在依赖关系中看到竖线“|”管道符,它是作用是用来指示命令前提目标 order-only prerequisites。 1. makefile基本语法复习这里
阅读全文
05 2021 档案
摘要:rtmp 自己有三次握手,tcp有三次握手 一个建立连接完成,要9 次会话的来回,才能完成建连接 移动互联网,用手机比较难 rtmp 完全依赖于 tcp 不能提供带宽自适应算法 quic vs srt 都可以 有ack 有ack的ack 有nack 基于时间报文发送和接收 rtt inflight
阅读全文
摘要:通常,当我们开发Linux程序时有两种方案: 在Linux上直接编写程序并进行运行测试和调试 在Windows或Mac OS X上借助工具进行远程开发 虽然我自己是在Linux环境上直接进行开发的,但也有许多的人是在Windows环境上从事开发工作的,如果离开自己熟悉的系统到陌生的环境上也许会影响到
阅读全文
摘要:from:https://visualgdb.com/tutorials/IntelliSense/ This tutorial shows how to diagnose IntelliSense problems for advanced VisualGDB projects (e.g. Adv
阅读全文
摘要:本文说明 当前的使用场景是在windows上远程编辑linux开发服务器下的代码,要一个可以代码补全的编辑器而已,并不使用它来编译运行windows程序。想用vscode作为IDE的,如果是开发windows程序建议直接下载vs。 本文主要介绍vscode在编写c/c++程序时候的设置方法,我结合了
阅读全文
摘要:This post was updated on December 11, 2020 Visual Studio 2017 introduced the Linux Development with C++ workload. We generally recommend Visual Studio
阅读全文
摘要:VS2015推出了跨平台开发,其中包括了对Linux程序开发的支持,最近刚好需要开发Linux程序,对其进行了一些研究。 首先介绍下涉及到的开发工具 开发工具 VS2015Update3,下文简称VS(可以下载免费社区版) Visual C++ for Linux Development(VC_Li
阅读全文
摘要:最近写了很多Go语言的原创文章,其中Go语言实战系列30篇,近15W字,还有最近更新的Go经典库系列,不过通过大家的咨询来看,还是想要一些入门的知识,这一篇文章写于2017年初,这3年多Go更新了很多版本,所以需要更新下这篇文章。 提示:本文基于Go语言最新版 go1.15.3 写成。 有读者来信(
阅读全文
摘要:近期工作需要后台运行node.js以及exe程序。默认是会有cmd窗口信息打印的,现在需要隐藏进程(即只能在任务管理器中看到进程,任务栏无法看见)。初始时调用winexec()可以实现exe的后台运行,但是nodejs程序不好使(winexec()只能调用exe程序)。网上查询后通过bat脚本实现。
阅读全文
摘要:总结:比较下来:diffmerge和P4merge最好用,kdiff比较专业些,支持自动merge。 一 csdiff 下载:http://www.componentsoftware.com/Products/CSDiff/index.htm 特点:1)免费;2)需要安装;3)文件和文件夹比较;4)
阅读全文
摘要:正文 1.linux中的变量 变量是一个很重要的概念,无论是bash脚本还是其他语言,都是如此。在bash中,创建变量很简单,给变量一个名称即可。默认情况下,变量的值为空。我们可以通过等号为变量赋值。需要注意的是,变量和变量的值不是一个概念。当给定变量一个名称后,例如myvar,我们需要通过$取得变
阅读全文
摘要:1.反引号与 $() 用于命令替换 反引号和$()的作用相同,用于命令替换(command substitution),即完成引用命令的执行,将其结果替换出来,与变量替换差不多。比如: echo date '--date=1 hour ago' +%Y-%m-%d-%H #或者 echo $(dat
阅读全文
摘要:文章目录 引用 单引号' 双引号" 反斜线 反引号` 引用 在第五章中讲到shell中的引用,shell能识别到4种不同的引用字符: 单引号’ 双引号" 反斜线 反引号` 前两种和最后一种必须成对出现,而反斜线可以在命令中根据需要多次出现,这些引用字符在shell中的含义和功能各不相同。 单引号’
阅读全文
摘要:反引号位 (`) 位于键盘的Tab键的上方、1键的左方。注意与单引号(')位于Enter键的左方的区别。 反引号位 (`)在Linux中起着命令替换的作用。命令替换是指shell能够将一个命令的标准输出插在一个命令行中任何位置。 举个例子: linuxidc@www.linuxidc.com:$ d
阅读全文
摘要:虽然我群里天天在炸这点事最近。我觉得你们也不是很急着我发这玩意。发了其实也没啥人看。呵呵…但还是说说吧。手机写的 尽量说清楚。 首先 先来介绍最原始的方式…Video标签。 就HTML里写一个标签video 告诉它你的视频地址就能播放了~是不是很神奇?但是有一些限制: 1.不是所有的封装格式都支持。
阅读全文
摘要:文章目录 引言 问题 解决方案 3.1 方案1:开发自己的浏览器 3.2 方案2:前端JS解码+canvas显示 3.3 方案3:前端WebAssembly转码+video显示 3.4 方案4:前端WebAssembly解码+canvas显示 3.5 总结 相关资料 参考资料 引言 项目要求在浏览器
阅读全文
摘要:开源软件中有大量专家构建的代码,大大节省了开发人员的时间和成本,热衷于开源的大厂们总是能够带给我们新的惊喜。2016年9月GitHub报告显示,GitHub已经有超过 520 万的用户和超 30 万的组织。这十二个月以来,有超过 81 万的人发起了人生第一个 PR,更有 280 万人创造了他自己的第
阅读全文
摘要:前面的一篇文章《微软、谷歌、亚马逊、Facebook等硅谷大厂91个开源软件盘点(附下载地址)》列举了国外8个互联网公司(包括微软、Google、亚马逊、IBM、Facebook、Twitter、eBay、VMware)的开源软件项目,今天我们来盘点一下国内几个体量较大的互联网大厂(腾讯、百度、阿里
阅读全文
摘要:01 总览 编译阶段 nm 获取二进制文件包含的符号信息 strings 获取二进制文件包含的字符串常量 strip 去除二进制文件包含的符号 readelf 显示目标文件详细信息 objdump 尽可能反汇编出源代码 addr2line 根据地址查找代码行 运行阶段 gdb 强大的调试工具 ldd
阅读全文
摘要:背景 有时候会遇到一些疑难杂症,并且监控插件并不能一眼立马发现问题的根源。这时候就需要登录服务器进一步深入分析问题的根源。那么分析问题需要有一定的技术经验积累,并且有些问题涉及到的领域非常广,才能定位到问题。所以,分析问题和踩坑是非常锻炼一个人的成长和提升自我能力。如果我们有一套好的分析工具,那将是
阅读全文
摘要:操作系统「进程」是学计算机都要接触的基本概念,抛开那些纯理论的操作系统底层实现,在Linux下做软件开发这么多年,每次程序运行出现问题,都要一步一步分析进程各种状态,去排查问题出在哪里,这次lemon带你在Linux环境下实操,一步步探究揭开「Linux进程」的那些秘密。 何为进程 首先我们说下「程
阅读全文
摘要:前言 NoSQL、尤其是key-value NoSQL在日常开发中扮演了非常重要的角色,除非对于关系型数据或者事务之类的有着非常强的诉求,不妨就根据业务特点试一下NoSQL,现在市面上的NoSQL非常多,比如说 Redis、Tair、Rockes DB、MongoDB等,每种都有自己的特点。 本篇文
阅读全文
摘要:什么是core dump? Coredump叫做核心转储,它是进程运行时在突然崩溃的那一刻的一个内存快照。操作系统在程序发生异常而异常在进程内部又没有被捕获的情况下,会把进程此刻内存、寄存器状态、运行堆栈等信息转储保存在一个二进制文件里。 设置core dump文件大小,默认0,即不会生成core文
阅读全文
摘要:目录: HandlerSocket的原理 HandlerSocket的优势和缺陷阐述 HandlerSocket的性能测试 HandlerSocket的原理 HandlerSocket的应用场景: MySQL自身的局限性,很多站点都采用了MySQL+Memcached的经典架构,甚至一些网站放弃My
阅读全文
摘要:简介 进程无法启动,软件运行速度突然变慢,程序的"Segment Fault"等等都是让每个Unix系统用户头痛的问题,本文通过三个实际案例演示如何使用truss、strace和ltrace这三个常用的调试工具来快速诊断软件的"疑难杂症"。 truss和strace用来 跟踪一个进程的系统调用或信号
阅读全文
摘要:strace是什么? 按照strace官网的描述, strace是一个可用于诊断、调试和教学的Linux用户空间跟踪器。我们用它来监控用户空间进程和内核的交互,比如系统调用、信号传递、进程状态变更等。 strace底层使用内核的ptrace特性来实现其功能。 在运维的日常工作中,故障处理和问题诊断是
阅读全文
摘要:多进程调试 我们使用gdb调试程序,gdb的调试默认是调试父进程的,如果要做到对父进程和子进程都做到调试,所以附加了调试子进程的功能。 设置条件 如果让gdb可以同时调试多个程序,只需要设置follow-fork-mode(默认:parent)和detach-on-fork(默认:on)就好了。 f
阅读全文
摘要:在进入gdb后设置,执行下面语句 handle SIGSEGV nopass handle SIGSEGV nostop 执行程序,触发问题,gdb侧执行c 故障出现时,执行bt,显示堆栈调用。
阅读全文
摘要:将信号量sem_t相关的一组API封装成Win32平台上的事件对象类之后,在Linux平台上就可以像使用事件对象那样,方便地进行线程同步了。 class CEventImpl { protected: /* 创建匿名信号量 `bAutoReset true 人工重置 false 自动重置 */ CE
阅读全文