C语言 循环与时间函数的问题,求大神教!我实现了有加分!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言 循环与时间函数的问题,求大神教!我实现了有加分!相关的知识,希望对你有一定的参考价值。

是这样,小弟在做毕设的东西,要用到大概就是说,循环体内的东西执行30秒就结束,怎样编写代码??写一下伪代码也可以,我主要是不会用时间函数,不知道怎么让循环执行30秒。(我这30秒是循环利用winpcap抓包),感激不尽!!能实现还有加分!!
pcap_loop(adhandle, 0, packet_handler, NULL);

我想让这个循环30秒就退出重新执行,一共10次,怎么弄 啊,我感觉这个回调函数就是自己在不断循环,不会跳出来。。

你的意思是整个循环代码最多只执行30s吗?或者意思是你这是个无限循环,让他退出循环体的条件就是执行了超过30s?

#include <time.h>

...
clock_t tbeg = clock();
while (1)

    clock_t tend = clock();
    if ((tend - tbeg) * 1.0 / CLOCKS_PER_SEC > 30.0)
        break;

    //执行你的代码

...

追问

大概是这样,可是现在我这个循环体是个回调函数,,该怎么办。。
for (int i = 0; i < 10; i++)

pcap_loop(adhandle, 0, packet_handler, NULL);

我是想每次抓包抓30秒,一共抓10次,,您知道该怎么办么?

参考技术A 写个定时器函数就好了追问

怎么写。。?

追答

你是什么编译环境或者是什么平台?

C语言popen函数编译(连接)的时候总说有一个error(错误),找不到原因求大神帮忙TAT

C语言popen函数编译(连接)的时候总说有一个error(错误),找不到原因求大神帮忙TAT代码:
#include <stdio.h>
#include <stdlib.h>

int main (void)

char buf[1024];
FILE *fp = popen("tasklist", "r");

fgets(buf, sizeof(buf), fp);

printf("%s", buf);

return 0;

如果你是用的基于gcc的编译器 这个代码不会出问题 比如dev-C++ 或者C-free一类的
如果用VC或者VS 那这个就会出错了
因为VC不支持popen而是_popen 需要改成
FILE *fp = _popen("tasklist", "r");追问

用dev-C++也不行呀

用c-free跑起来好像没什么问题谢谢

参考技术A 奇怪了,我用c-free编译,可以通过啊。

以上是关于C语言 循环与时间函数的问题,求大神教!我实现了有加分!的主要内容,如果未能解决你的问题,请参考以下文章

C语言中,函数是不是可以直接或间接调用自己!!求大神!!求解析!!!

c语言作业,求大神帮忙:使用双层 for 循环输出九九乘法口诀表

三道C语言位运算题目,求大神!

vscode怎么配置c语言的断电调试啊?请大神们教一下啊

求c语言大神 题目:编写查找函数search(),实现如下功能。

求大神,c语言怎么用for循环语句输出1到100的所有质数,我这么做结果出来的是2到100的所有数