c语言中,关于延迟函数的理解

对于延迟,有些c基础的人都能够做到用for或while来实现 
例如:

#include <stdio.h>int main()
{int i, j, k;for (i = 1; i < 1000; i++){for (j = 1; j < 1000; j++){for (k = 1; k < 1000; k++){}}}printf("hello\n");return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

但是用for或while来实现延迟,对于延迟的时间不好把握,也比较low。

在这主要想和大家分享的是Linuxc语言中的延迟函数sleep()的用法。 
-例如:

#include <stdio.h>int main()
{printf("hello\n");sleep(1);  //延迟1秒printf("world\n");return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

这里写图片描述 
after 1s: 
这里写图片描述

windows下 sleep(1000) 代表延迟1秒,因为sleep的参数为毫秒, 
而在Linux下 sleep的参数为秒,所以延迟1秒为 sleep(1)。 
请大家看以下程序

#include <stdio.h>int main()
{printf("hello"); /*去掉转义字符'\n'*/sleep(1);printf("world");return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

这里写图片描述 
after 1s: 
这里写图片描述

大家会发现去掉转义字符‘\n’,不再执行任何转义操作后,延迟函数sleep不再在语句间延迟,而是变成延迟整个程序。 
那么如何解决这一问题呢? 
这就需要借助另一个函数fflush( )

#include <stdio.h>int main()
{printf("hello");fflush(stdout);   //强制刷新缓存,输出显示sleep(10);printf("world");return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

这里写图片描述 
after 1s: 
这里写图片描述

对于fflush( )函数这里就不多说了,这里主要想和大家分享的是关于Linux下c 中sleep( )函数的使用。 
以上就是我对它的简单理解,希望可以帮到有需要的人。

转载自(http://blog.csdn.NET/Crazy_Tengt/article/details/72764007)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/460341.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

static方法不能直接访问类内的非static变量和不能调用this,super语句分析

大家都知道在static方法中&#xff0c;不能访问类内非static成员变量和方法。可是原因是什么呢&#xff1f; 这首先要从static方法的特性说起。static方法&#xff0c;即类的静态成员经常被称为“成员变量”&#xff08;class members&#xff09;&#xff0c;对于静态成员变量…

C++ Qt 访问权限总结

总结&#xff1a;C的访问修饰符的作用是以类为单位&#xff0c;而不是以对象为单位。 通俗的讲&#xff0c;同类的对象间可以“互相访问”对方的数据成员&#xff0c;只不过访问途径不是直接访问. 步骤是&#xff1a;通过一个对象调用其public成员函数&#xff0c;此成员函数可…

火山去水印链接_在线批量去水印下载快手图集视频、抖音、火山等平台方法技巧!...

不管是做自媒体还是做电商或是工作素材采集&#xff0c;都离不开视频&#xff0c;视频比文字更好展示出产品、细节内容&#xff0c;就好比我们经常看的抖音、快手、火山、皮皮虾之类的短视频里面就有很多优秀的素材&#xff0c;相信有采集过的朋友都会遇到平台水印这个问题吧&a…

输出素数

素数是指仅能被1和她自身整除的整数。&#xff08;1 不是素数&#xff09; 程序设计时 i 可以从2开始&#xff0c;到该整数的 1/2为止&#xff0c;用 i 一次去除需要判断的整数&#xff0c;只要存在可以整除该数的情况&#xff0c;即可以确定要判断的整数不是素数&#xff0c;…

php CI 实战教程:如何去掉index.php目录

Windows下自由创建.htaccess文件的N种方法.htaccess是apache的访问控制文件&#xff0c;apache中httpd.conf的选项配合此文件&#xff0c;完美实现了目录、站点的访问控制&#xff0c;当然最多的还是rewrite功能&#xff0c;即URL重写&#xff0c;PHP中实现伪静态的一个重要途径…

十字连接焊盘_你应该知道的焊盘基础知识

PADSTACK&#xff1a;就是一组PAD的总称。Copper pad&#xff1a;在布线层(routing layer),注意不是内层&#xff0c;任何孔都会带有一个尺寸大于钻孔的铜盘(copper pad)。对内布线层这个铜盘大概14 mils&#xff0c;外布线层更大。如果这里需要导线连接,那么这个可以提供一个可…

逆序输出字符串

void re(char *str, int len); void re2(char *str); int main() { char str[1024] “I am from ShangHai”; //char str[1024] “a b c d e f”; re(str, strlen(str)); printf("first : |%s|\n", str);re2(str); printf("second : |%s|\n", str);…

利用stat命令获取Linux文件系统和文件的详细状态信息

用途&#xff1a;stat命令用于显示文件或文件系统的状态信息&#xff0c;来自于coreutils软件包&#xff0c;一般系统自带此命令工具&#xff0c;它能获取与文件系统及文件相关的许多信息&#xff0c;具体用途见stat的功能选项。这些信息包括inode、atime、ctime、mtime、文件&…

平面上最近点对

在二维平面上的n个点中&#xff0c;如何快速的找出最近的一对点&#xff0c;就是最近点对问题。 一种简单的想法是暴力枚举每两个点&#xff0c;记录最小距离&#xff0c;显然&#xff0c;时间复杂度为O(n^2)。 在这里介绍一种时间复杂度为O(nlognlogn)的算法。其实&#xff0c…

分词之后的如何做特征选择_特征选择怎么做?这篇文章告诉你

作者 | Pier Paolo Ippolito翻译 | Skura编辑 | 唐里原文标题&#xff1a;Feature Selection Techniques据《福布斯》报道&#xff0c;每天大约会有 250 万字节的数据被产生。然后&#xff0c;可以使用数据科学和机器学习技术对这些数据进行分析&#xff0c;以便提供分析和作出…

Shell脚本中循环语句for,while,until用法

循环语句:BashShell中主要提供了三种循环方式&#xff1a;for、while和until。一、for循环for循环的运作方式&#xff0c;是讲串行的元素意义取出&#xff0c;依序放入指定的变量中&#xff0c;然后重复执行含括的命令区域&#xff08;在do和done 之间&#xff09;&#xff0c;…

我的扫描器设计

Web扫描器SeachPlan的设计与实现 姓名 李波 2014年6月 中图分类号&#xff1a;TP311. UDC分类号&#xff1a;004. Web漏洞扫描器SeachPlan的设计与实现 作 者 姓 名 李波 学 院 名 称 软件学院 指 导 教 师 XXX 答辩委员会主席 XXX …

git管理账户忘记了_强制找回GitLab管理员账户密码的方法

01. 概述如果gitlab的密码忘记了&#xff0c;由于没有邮箱服务支持&#xff0c;所以可以通过后台直接操作git-shell&#xff0c;先找回管理员的密码。操作步骤如下02. 环境使用docker部署的gitlab&#xff0c;因此需要多执行一步&#xff0c;如果是传统安装方法&#xff0c;不用…

无名管道pipe使用方法

有名管道pipe函数:int pipe(int filedes[2]); 下面程序通过创建进程&#xff0c;父进程写入数据&#xff0c;子进程读取数据&#xff0c;从管道中读取数据。 #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <sys/types.h> #i…

交换2个数值的方法

如何交换2个变量的值&#xff1f;一般来说&#xff0c;想到的方法是再找一个临时变量&#xff0c;通过一种顺序存放的方式来达到交换值的效果。 比如有a,b这2个变量。取同类型的变量temp。 temp a ; a b ; b temp ; 这样就完成了交换。但这样做的话会多使用一个temp的内存。…

mysql的char和varchar_MySQL的char和varchar

1.varchar类型的变化MySQL 数据库的varchar类型在4.1以下的版本中的最大长度限制为255&#xff0c;其数据范围可以是0~255或1~255(根据不同版本数据库来定)。在 MySQL5.0以上的版本中&#xff0c;varchar数据类型的长度支持到了65535&#xff0c;也就是说可以存放65532个字节的…

【问题收集·知识储备】Xcode只能选择My Mac,不能选择模拟器如何解决?

网友问题:请问打开一个应用&#xff0c;只能选择My Mac&#xff0c;不能选择模拟器如何解决&#xff1f; 答案: 下面将问答过程记录如下&#xff1a; CHENYILONG Blog请问打开一个应用&#xff0c;只能选择My Mac&#xff0c;不能选择模拟器如何解决&#xff1f; 网友的问题 09…

typedef的使用方法

typedef是在计算机编程语言中用来为复杂的声明定义简单的别名&#xff0c;与宏定义有些差异。它本身是一种存储类的关键字&#xff0c;与auto、extern、mutable、static、register等关键字不能出现在同一个表达式中。 使用typedef为现有类型创建别名&#xff0c;定义易于记忆的…

SQL Server CLR全功略之一---CLR介绍和配置

Microsoft SQL Server 现在具备与 Microsoft Windows .NET Framework 的公共语言运行时 (CLR) 组件集成的功能。CLR 为托管代码提供服务&#xff0c;例如跨语言集成、代码访问安全性、对象生存期管理以及调试和分析支持。对于 SQL Server 用户和应用程序开发人员来说&#xff0…