是否可以这样做?
我想执行以下语句......
while(1){
fputs(ch, b);
printf("Extracting information please wait..."); //This is the line I want to execute in intervals
}
是否可以在C中这样做? 我试着保留一个x变量,使print语句执行得更慢,如下所示:
while(1){
fputs(ch, b);
if(x%10 == 0)
printf("...");
x++;
}
但显然它会使文件填充的执行速度变慢。有什么办法吗?我知道很可能不会因为C不是脚本语言而逐行执行,但仍然如此。我们可以为此目的以某种方式使用sleep()吗?或者唯一的方法是让两个陈述都等待?
答案 0 :(得分:1)
我已经整理了一些示例代码,我认为这些代码可能对您有帮助。
下面的代码使用名为pthread的库来完成工作。
请注意,它适用于Linux,我不确定它是否适用于其他操作系统。
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <pthread.h>
void * thread1(void* arg)
{
while (i)
{
printf("Extracting information please wait...\n");
fflush(stdout);
sleep(1);
}
return (void *) 0;
}
int main(void) {
//declaring the thread variable -- will store the thread ID
static pthread_t pthread1;
//creates the thread 'thread1' and assing its ID to 'pthread1'
//you could get the return code of the function if you like
pthread_create(&pthread1, NULL, &thread1,NULL);
// this line will be written once and would be the place to run the command you want
printf("You could start fgets now!! remember to put it after the creation of the thread\n");
fflush(stdout);
// since I am not writing anything to the file stream I am just waiting;
sleep(10);
return EXIT_SUCCESS;
}
希望它有所帮助。