c
C language
sunweixiang1002
天道酬勤
展开
-
linux高精度struct timespec 和 struct timeval
一、struct timespec 定义:typedef long time_t;#ifndef _TIMESPEC#define _TIMESPECstruct timespec {time_t tv_sec; // seconds long tv_nsec; // and nanoseconds };#endifstruct timespec有两个成员,一个是秒,一个是纳秒...原创 2018-12-22 14:22:23 · 911 阅读 · 0 评论 -
localtime、localtime_s、localtime_r的使用
a.localtime用来获取系统时间,精度为秒#include <stdio.h>#include <time.h> int main(){ time_t time_seconds = time(0); struct tm* ptm = localtime(&time_seconds); printf("%04d-%02d...原创 2018-12-20 16:29:51 · 3344 阅读 · 0 评论 -
进制转换函数
#define TOLOWER(x) ((x) | 0x20) #define isxdigit(c) (('0' <= (c) && (c) <= '9') || ('a' <= (c) && (c) <= 'f') || ('A' <= (c) && (c) <= 'F'))#define isdig...原创 2018-10-16 20:29:32 · 1329 阅读 · 0 评论 -
dmesg七种用法
dmesg 命令的使用范例‘dmesg’命令设备故障的诊断是非常重要的。在‘dmesg’命令的帮助下进行硬件的连接或断开连接操作时,我们可以看到硬件的检测或者断开连接的信息。‘dmesg’命令在多数基于Linux和Unix的操作系统中都可以使用。下面我们展示一些最负盛名的‘dmesg’命令工具以及其实际使用举例。‘dmesg’命令的使用语法如下。# dmesg [options...]...原创 2018-09-04 15:55:40 · 2146 阅读 · 0 评论 -
sscanf()用法简介
#include<stdio.h> #include<stdlib.h> #include<string.h> int main(){ char str[100]; //用法一:取指定长度的字符串 sscanf("12345","%4s",str); printf("用法一\nstr = %s...原创 2018-07-17 10:25:25 · 605 阅读 · 0 评论 -
深入理解C语言内存管理
之前在学Java的时候对于Java虚拟机中的内存分布有一定的了解,但是最近在看一些C,发现居然自己对于C语言的内存分配了解的太少。问题不能拖,我这就来学习一下吧,争取一次搞定。 在任何程序设计环境及语言中,内存管理都十分重要。内存管理的基本概念分析C语言内存的分布先从Linux下可执行的C程序入手。现在有一个简单的C源程序hello.c1 #include <stdio.h>2 #i...原创 2018-05-22 16:43:08 · 4325 阅读 · 1 评论 -
如何利用Telnet连接Linux服务器
转载https://jingyan.baidu.com/article/8cdccae97b712a315413cd8c.html转载 2018-04-24 15:49:21 · 10672 阅读 · 0 评论 -
C中的volatile用法
一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。下面是volatile变量的几个例子: 1) 并行设备的硬件寄存器(如:状态寄存器) 2) 一个中断服务子程序中会访问到的非自动变量(Non-automatic variables原创 2016-11-23 14:19:22 · 297 阅读 · 0 评论 -
linux下用core和gdb查询出现"段错误"的地方
有些时候我们在一段C代码的时候,由于对一个非法内存进行了操作,在程序运行的过程中,出现了"段错误"。呵呵,这种问题我想很多人会经常遇到。遇到这种问题是非常无语的,只是提示了"段错误",接着什么都没 有,如果我们一味的去看代码找太疼苦了,因为我们都相信自己写的代码没问题,现实就是现实。下面介绍一种方法,可以有效的定位出现"段错误的地方"。当我们的程序崩溃时,内核有可能把该程序当前内存映射到c原创 2016-11-20 01:25:03 · 378 阅读 · 1 评论 -
工程项目管理的作用
1、定义:makefile是一个脚本文件,解决了批处理(自动编译)的问题,即用一条指令替代多条指令执行的效果,帮助make来编译工程代码。在 Linux(unix )环境下使用GNU 的make工具能够比较容易的构建一个属于你自己的工程,整个工程的编译只需要一个命令就可以完成编译、连接以至于最后的执行。不过这需要我们投入一些时间去完成一个或者多个称之为Makefile转载 2016-11-02 10:09:56 · 797 阅读 · 0 评论 -
使用系统调用的原因以及其与库函数(api)的区别
为什么需要系统调用?主要有以下两方面原因。(1)系统调用可以为用户空间提供访问硬件资源的统一接口,以至于应用程序不必去关注具体的硬件访问操作。比如,读写文件时,应用程序不用去管磁盘类型,甚至于不用关心是哪种文件系统。(2)系统调用可以对系统进行保护,保证系统的稳定和安全。系统调用的存在规定了用户进程进入内核的具体方式,换句话说,用户访问内核的路径是事先规定好的,只能从规定位置进入内原创 2016-11-01 22:34:46 · 1063 阅读 · 0 评论 -
sizeof的详尽计算结构体字节数方法
Sizeof用法本文主要包括二个部分,第一部分重点介绍在VC中,怎么样采用sizeof来求结构的大小,以及容易出现的问题,并给出解决问题的方法,第二部分总结出VC中sizeof的主要用法。1、 sizeof应用在结构上的情况请看下面的结构:struct MyStruct{double dda1;char dda;int type转载 2016-11-08 19:44:29 · 412 阅读 · 0 评论 -
C语言运算符优先级(超详细)
C语言运算符优先级优先级运算符名称或含义使用形式结合方向说明1[]数组下标数组名[常量表达式]左到右--()圆括号(表达式)/函数名(形参表)--.成员原创 2016-11-07 20:42:21 · 787 阅读 · 0 评论 -
交换两个变量的值 不使用第三个变量
通常我们的做法是(尤其是在学习阶段):定义一个新的变量,借助它完成交换。代码如下:int a,b;a=10; b=15;int t;t=a; a=b; b=t;这种算法易于理解,特别适合帮助初学者了解计算机程序的特点,是赋值语句的经典应用。在实际软件开发当中,此算法简单明了,不会产生歧义,便于程序员之间的交流,一般情况下碰到交换变量值的问题,都应采用此算法(以下称为标准算法)。原创 2016-11-02 23:29:48 · 363 阅读 · 0 评论