Linux平台 C语言 获取时间差(微秒级)+ 复制到vim时的格式错乱问题解决办法

本文介绍了如何在Linux环境下使用C语言获取两个时间点之间的微秒级时间差,并提供了相关代码示例。同时,针对在Vim中粘贴文本导致格式错乱的问题,给出了进入和退出Vim paste模式的解决方法,以保持代码格式不变。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 一、写在前面:这篇文章是借鉴其他两个大佬的文章,这里仅仅是搬运过来保存一下,以免之后忘记时找不到原文。

Linux平台C语言获取时间差(微秒级)原文链接:http://blog.chinaunix.net/uid-26808060-id-4101137.html

复制到vim时的格式错乱问题原文链接:https://blog.csdn.net/wzy_1988/article/details/50264285

#include <stdio.h>
#include <stdlib.h>
#include <sys/time.h>
int timeval_subtract(struct timeval*result, struct timeval* x, struct timeval *y);

int main(int argc, char **argv)
{
	struct timeval start,stop,diff;
	gettimeofday(&start,0);
	printf("this is a test\n");
	gettimeofday(&stop,0);
	timeval_subtract(&diff,&start,&stop);
	printf("总计用时:%d 微秒\n",diff.tv_usec);
}

/**
* 计算两个时间的间隔,得到时间差
* @param struct timeval* resule 返回计算出来的时间
* @param struct timeval* x 需要计算的前一个时间
* @param struct timeval* y 需要计算的后一个时间
* return -1 failure ,0 success
**/
int timeval_subtract(struct timeval* result, struct timeval* x, struct timeval* y)
{
	int nsec;

	if ( x->tv_sec>y->tv_sec )
		return -1;

	if ( (x->tv_sec==y->tv_sec) && (x->tv_usec>y->tv_usec) )
		return -1;

	result->tv_sec = ( y->tv_sec-x->tv_sec );
	result->tv_usec = ( y->tv_usec-x->tv_usec );

	if (result->tv_usec<0)
	{
		result->tv_sec--;
	  	result->tv_usec+=1000000;
	}

	return 0;
}

复制到vim中时,会出现格式错乱的情况,如

此时只需要设置vim为paste模式即可。复制完之后记得退出paste模式。

设置命令为:

:set paste  //进入paste模式
:set nopaste   //退出paste模式

paste模式主要帮我们做了一下事情

  • textwidth设置为0
  • wrapmargin设置为0
  • set noai
  • set nosi
  • softtabstop设置为0
  • revins重置
  • ruler重置
  • showmatch重置
  • formatoptions使用空值
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值