位运算符与其他

0x00 前言 万般皆苦,唯有自渡;人生苦短,我亦朝阳 0x01 机器数--二进制数 机器数 数字在计算机中的二进制表示形式,且有对应的符号位 符号位 二进制数的最高位(第一位),且正数为0,负数为1。如00000110为6,10000110为-6 机器的字长 机器内部设备一次能表示的二进制位数。 ... »

【粉丝问答10】C语言关键字static的使用详解

视频地址:https://www.ixigua.com/6935761378816819748 粉丝提问 粉丝问题,总结一下: 关键字static的使用方法。 要想搞清楚关键字static的使用方法,必须首先搞清楚,可执行程序段的分类以及各段在内存区的逻辑地址的映射。 一、可执行程序内存分配 1. ... »

Nginx(八): 观进程锁的实现

前面的nginx系列讲解了nginx很多通用概念,流程,以及核心的http模块的一些实现。应该说大体上对nginx已经不再陌生和神秘。 今天我们不看全局,只看一个非常非常小的细节:nginx是多进程并发模型的应用,但为了网络请求的安全性,必须要使用到锁,那么这个进程锁如何实现呢? 1. nginx进 ... »

【不在混淆的C】指针函数、函数指针、回调函数

一、指针函数 函数的返回值是指针类型。 int* fun(int a,int b); 指针函数使用: 返回字符串 这里要注意,"1234567890abc"是字符串常量,*p指向的字符串地址,返回的是这个地址,因为字符串常量不会因为函数消亡而释放,所有主函数依然可以访问到地址的内容。 #includ ... »

JVM系列(四):java方法的查找过程实现

经过前面几章的简单介绍,我们已经大致了解了jvm的启动框架和执行流程了。不过,这些都是些无关痛痒的问题,几行文字描述一下即可。 所以,今天我们从另一个角度来讲解jvm的一些东西,以便可以更多一点认知。即如题:jvm是如何找到对应的java方法,然后执行的呢?(但是执行太复杂,太重要,我们就不说了。我 ... »

JVM系列(三):JVM创建过程解析

上两篇中梳理了整个java启动过程中,jvm大致是如何运行的。即厘清了我们认为的jvm的启动过程。但那里面仅为一些大致的东西,比如参数解析,验证,dll加载等等。把最核心的loadJavaVM()交给了一个dll或者so库。也就是真正的jvm我们并没有接触到,我们仅看了一个包装者或者是上层应用的实现 ... »

C语言之库函数的模拟与使用

C语言之库函数的模拟与使用 在我们学习C语言的过程中,难免会遇到这样的一种情况: 我们通常实现一个功能的时候,费尽心血的写出来,却有着满满的错,这时却有人来告诉你说:这个功能可以用相应的库函数来实现。 这时你的心里充满着***。但这并不算坏事,至少加深了你对它的认识与记忆。 所以,今天来漫谈一下 某 ... »

JVM系列(一):jvm启动过程速览

jvm是java的核心运行平台,自然是个非常复杂的系统。当然了,说jvm是个平台,实际上也是个泛称。准确的说,它是一个java虚拟机的统称,它并不指具体的某个虚拟机。所以,谈到java虚拟机时,往往我们通常说的都是一些规范性质的东西。 那么,如果想要研究jvm是如何工作的,就不能是泛泛而谈了。我们必 ... »

C语言之数据在内存中的存储

C语言之数据在内存中的存储 在我们学习此之前,我们先来回忆一下C语言中都有哪些数据类型呢? 首先我们来看看C语言中的基本的内置类型: char //字符数据类型 short //短整型 int //整形 long //长整型 long long //更长的整形 float //单精度浮点数 doub ... »

关闭(隐藏)VS2019控制台上文件路径的显示

昨天有个朋友问我,怎么关闭在运行程序后,控制台上显示的文件路径啊?啥??我突然不知道他说的说什么,然后我就自己随便打了几行运行了一下,才知道原来他说的是这个: 一开始我也没在意,我就告诉他,这个无所谓的,不用管。 虽然嘴上是这么说的不用管,但有点强迫症的我今天一天都看这个显示”不舒服“,我就感觉这个 ... »

关闭(隐藏)控制台上显示的文件路径

昨天有个朋友问我,怎么关闭在运行程序后,控制台上显示的文件路径啊?啥??我突然不知道他说的说什么,然后我就自己随便打了几行运行了一下,才知道原来他说的是这个: 一开始我也没在意,我就告诉他,这个无所谓的,不用管。 虽然嘴上是这么说的不用管,但有点强迫症的我今天一天都看这个显示”不舒服“,我就感觉这个 ... »

VS2019中scanf返回值被忽略的问题及其解决方法

目录 "问题" "问题原因" "方法①" "方法②" "方法③" "方法④" 昨天在使用Visual Studio 2019编写C语言程序时遇到了scanf返回值被忽略问题 因为我也是刚开始学习C语言,第一次遇到这种问题,也不知道怎么回事,然后就上Chrome研究了一番,才知道原因,并且找到了几种分 ... »

Nginx(七):location的使用以及nginx关闭原理

上一篇中,我们了解了如何nginx的配置原则及解析框架,以及解析location配置的具体实现,相信大家对该部分已经有了比较深刻的认识。 本篇,我们进一步来了解下,解析之后的配置,如何应用到实际中的吧。当然,我们只讲解 location 的查找过程。 1. location的接入流程 在nginx的 ... »

【linux】系统编程-7-网络编程

前言 10. 网络编程 互联网通信所要遵守的众多协议,被统称为TCP/IP。 10.1 简要网络知识 TCP/IP是一个庞大的协议族,它是众多网络协议的集合,包括:ARP、IP、ICMP、UDP、TCP、DNS、DHCP、HTTP、FTP、MQTT等等 分层 graph LR A[应用层] --> ... »

【linux】系统编程-6-POSIX标准下的信号量与互斥锁

前言 8. POSIX信号量 8.1 概念 信号量(Semaphore)是一种实现进程/线程间通信的机制,可以实现进程/线程之间同步或临界资源的互斥访问, 常用于协助一组相互竞争的进程/线程来访问临界资源。 在POSIX标准中分无名信号量和有名信号量: 无名信号量 一般用于线程间同步或互斥 无名信号 ... »

Nginx(六)、配置解析之location解析

nginx成为非常流行的代理服务软件,最根本的原因也许是在于其强悍性能。但还有一些必要的条件,比如功能的完整,配置的易用,能够解决各种各样的实际需求问题,这些是一个好的软件的必备特性。 那么,今天我们就来看看nginx配置的部分原则和解析原理吧。我们只做location部分的细节解析,但其他配置道理 ... »

c语言实现一些简单图形的打印

1 #define _CRT_SECURE_NO_WARNINGS 1 因为笔者采用的是VS的编译环境所以有了上面的这一句话 我们都知道平面图形是由一条条线段构成,所以我们就先实现线段的打印 1 //打印自定义长度的线段 2 #include<stdio.h> 3 int main() 4 { 5 ... »

简易CLI

使用C语言实现一个简易的CLI,命令通过模式进行划分,实现效果如下: 代码较为简单,主要是为了方便进行移植,这里就不进行详细的说明了。 代码路径:https://github.com/zhengcixi/easy_cli 代码的编写过程中参考了博主编写的Makefile,这里也给出链接:https: ... »

【linux】helloword原理分析及实战

前言 hello word 著名演示程序,哈哈 下面在 arm linux 下展示一下hello world,便开始入门 arm linux 程序篇。 以下学习基于 NXP 的 IMX6 平台。 linux中hello word原理 简要步骤 gcc 编译,编译成功后得出可执行文件 armHello ... »