CentOS7安装完后更改字符界面大小(调屏幕分辨率)

前言

使用虚拟机安装完CentOS7之后,那个超级巨大的字符界面分辨率已经把VMware虚拟机的窗口撑得屏幕都装不下了,严重影响我对系统的配置。

解决方法

在百度上看了很多方法,找到比较靠谱的一种——修改GRUB引导的配置文件。这样,下次重启的时候,分辨率就变小啦。
以下是我更改分辨率后的效果(比C[……]

继续阅读

BIND为任意长掩码的网段做反向解析

前言

当初做BIND实验的时候在网上搜到的资料全部是以24位掩码来做反向解析实验的,搞得我一直以为BIND反向解析时只能使用24位掩码。然而,事实上BIND支持任意长度掩码的网段的反向解析。

本文将以16位掩码为例子,演示配置过程。

实验目的

使BIND可以正确为192.168.0.0/16网段做[……]

继续阅读

GCC下“initializing ‘char **’ with an expression of type ‘const char **’ discards qualifiers in nested pointer types”警告解读

我曾经被这个警告困扰了好久好久,问了好些人,都说没遇到过=_=…
问题代码片段(与问题无关的代码块已被忽略):

size_t MyConv(const char *orginStr, const char *targetStr, ...) {
    char **tmpIn = NULL;[......]

继续阅读

在Linux下利用宏定义的方式使用Sleep函数

前言

Sleep是存在于Windows.h头文件中用于将进程挂起的函数。显然,Linux下是没有该头文件的,该如何实现呢?

实现方法

Linux的unistd.h库为我们提供了类似功能的usleep函数,但该函数的计时单位是微妙而不是和Sleep一样使用毫秒计时。
为了方便程序的跨平台开发,可以使用[……]

继续阅读

GNU出品的转码库——libiconv v1.15 for windows x64下载(已经过编译)

libiconv库是GNU项目的一部分,负责对字符进行不同编码间的转换。是Linux下非常常用的编码转换库,其对应的命令是:iconv(命令的使用方法可以百度了解下)。

libiconv库原生支持Windows平台,但考虑到很多人为了追求效率而不想自己动手编译这个庞大而复杂的库,故我在这里为大家提供已[……]

继续阅读

C语言操作文件时写完一组数据后立即刷新缓存区的方法

前言

很多时候,为了防止程序意外结束等原因造成的数据丢失,我们需要在向文件写入一组数据以后立即刷新缓存区。比如说:在写程序LOG的时候,为了防止程序崩溃时无法记录LOG,就需要记录一条LOG就刷新一次缓存区以使其立即写入磁盘文件。

实现方法

使用C标准库提供的fflush(FILE *)函数可以很方[……]

继续阅读

原来C语言的数组大小可以是一个变量呀!

长久以来,我一直以为C语言的数组大小必须是在编译前就确定下来的常量值,相信很多C语言初学者也是和我一样的认识。然而,直到今天我才发现原来从C99标准开始C语言就已经支持了可变长数组

例如如下程序(注:VS系列编译器均不支持该特性,搞不懂微软为何不好好支持C99标准):

#include <std[......]

继续阅读