linux延时命令c linux shell 延时

linux下C编程延时问题延时可以用简单的循环实现的,比如:
int Delay(int x)
{
int i;
i=x;
while(i=0)
i--;
}
这样也算构成了一个延迟程序
linux下写个C语言程序,要求有0.5微秒以下的延时,要怎样写0.5微秒的延迟相当于纳秒级的了,内核空间有提供纳秒级的延迟
#include linux/delay.h
ndelay(int n);延时n纳秒
但是时间应该是不准的 。
较为准确的延迟可以用select,但也只是us级的 。
struct timeval tv;
tv.tv_sec=0;
tv.tv_usec=iUsec;//微秒
select(0,NULL,NULL,NULL,tv);
在linux下,想用sleep函数实现延时五秒,应该怎么设参数?使用权限 : 所有使用者
使用方式 : sleep [--help] [--version] number[smhd]
说明 : sleep 可以用来将目前动作延迟一段时间
参数说明 :
--help : 显示辅助讯息
--version : 显示版本编号
number : 时间长度,后面可接 s、m、h 或 d
其中 s 为秒,m 为 分钟,h 为小时,d 为日数
例子 :
显示目前时间后延迟 1 分钟,之后再次显示时间 :
date;sleep 1m;date
这个命令更多应用于shell脚本编程里和程序里
如下面的一段程序:
应用程序:
复制代码
【linux延时命令c linux shell 延时】代码如下:
#include syswait.h
usleep(n) //n微秒
Sleep(n)//n毫秒
sleep(n)//n秒
驱动程序:
#include linux/delay.h
mdelay(n) //milliseconds 其实现
#ifdef notdef
#define mdelay(n) (\
{unsigned long msec=(n); while (msec--) udelay(1000);})
#else
#define mdelay(n) (\
(__builtin_constant_p(n)(n)=MAX_UDELAY_MS) ? udelay((n)*1000) : \
({unsigned long msec=(n); while (msec--) udelay(1000);}))
#endif
调用asm/delay.h的udelay,udelay应该是纳秒级的延时
Dos:
sleep(1); //停留1秒
delay(100); //停留100毫秒
Windows:
Sleep(100); //停留100毫秒
Linux:
sleep(1); //停留1秒
usleep(1000); //停留1毫秒
每一个平台不太一样,最好自己定义一套跨平台的宏进行控制
秒还是微秒?关于延时函数sleep()
因为要写一段代码,需要用到sleep()函数,在我印象中,sleep(10)好像是休眠10微秒,结果却是休眠了10秒(在Linux下) 。觉得很奇怪,因为头儿也记得好像是微秒为单位的 。所以就查了一下 。
原来linux下的sleep函数原型为:
unsigned int sleep(unsigned int seconds);
而MFC中的Sleep函数原型为:
void Sleep(DWORD dwMilliseconds);
也就是说,Linux下(使用的gcc的库),sleep()函数是以秒为单位的,sleep(1);就是休眠1秒 。而MFC下的sleep()函数是以微秒为单位的,sleep(1000);才是休眠1秒 。原来如此啊 。而如果在Linux下也用微妙为单位休眠 , 可以使用线程休眠函数:void usleep(unsigned long usec);当然,使用的时候别忘记#include system.h哦 。
另外值得一提的是,linux下还有个delay()函数,原型为extern void delay(unsigned int msec);它可以延时msec*4毫秒,也就是如果想延时一秒钟的话,可以这么用 delay(250);
linux 中实现延迟45分钟后执行命令,写了一段c程序,实现延迟 , 接下来,该如何执行命令呢 , 也就是shell1、system(执行shell 命令)
相关函数 fork,execve,waitpid,popen
表头文件 #includestdlib.h
定义函数 int system(const char * string);
函数说明 system()会调用fork()产生子进程,由子进程来调用/bin/sh-c
string来执行参数string字符串所代表的命令,此命令执行完后随
即返回原调用的进程 。在调用system()期间SIGCHLD 信号会被暂时
搁置 , SIGINT和SIGQUIT 信号则会被忽略 。
返回值 如果system()在调用/bin/sh时失败则返回127,其他失败原因返回-
1 。若参数string为空指针(NULL) , 则返回非零值 。如果system()调
用成功则最后会返回执行shell命令后的返回值,但是此返回值也有
可能为system()调用/bin/sh失败所返回的127 , 因此最好能再检查
errno 来确认执行成功 。
附加说明 在编写具有SUID/SGID权限的程序时请勿使用system(),system()会
继承环境变量 , 通过环境变量可能会造成系统安全的问题 。
例如:
#includestdlib.h
main()
{
system(“ls -al /etc/passwd /etc/shadow”);//换成./test.sh 可执行相关脚本
}
当然也可以用管道或exec函数族来调用shell
linux下c语言延时打印问题又是一个缓冲的问题,看一下我刚刚回答的这个问题,也是由于缓冲导致的 。
和 usleep 无关 , 你的问题只要改成即可:
while(i100)
{
printf("ok");
fflush(stdout);
usleep(10000);
i;
}
linux 中 -C是什么意思?-c :建立一个压缩文件的参数指令(create 的意思)
首先介绍一个名词“控制台(console)”,它就是我们通常见到的使用字符操作界面的人机接口 , 例如dos 。我们说控制台命令 , 就是指通过字符界面输入的可以操作系统的命令,例如dos命令就是控制台命令 。
我们现在要了解的是基于Linux操作系统的基本控制台命令 。有一点一定要注意 , 和dos命令不同的是,Linux的命令(也包括文件名等等)对大小写是敏感的 , 也就是说,如果你输入的命令大小写不对的话,系统是不会做出你期望的响应的 。
扩展资料:
-x :解开一个压缩文件的参数指令!
-t :查看 tarfile 里面的文件!
特别注意,在参数的下达中,c/x/t 仅能存在一个!不可同时存在!
因为不可能同时压缩与解压缩 。
-z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩?
-j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩?
-v :压缩的过程中显示文件!这个常用 , 但不建议用在背景执行过程!
参考资料来源:百度百科-linux命令
关于linux延时命令c和linux shell 延时的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

    推荐阅读