2016-07-07 3 views
0

こんにちはためのGetTickCountを使用して - 名前がCreateFileNow(ある関数を呼び出す){}私のアプリケーションは、私は機能をロードし起動すると、「ループ」

私はループを作りたいが、私はどのように知りません。私は15秒ごとにデータを書きたいと思う。アプリケーション起動時に関数を呼び出し、データをファイルに書き込んだり、15秒待ってデータを再度ファイルに書き込んだりします。

FILE* file; 

    if (fopen_s(&file, "Accesslog.txt", "w") != 0) 
    { 
     return; 
    } 

    fprintf(file, "Test"); 

    fclose(file); 

このコード部分を15秒ごとに実行するループを作成するにはどうすればよいですか? WhileとSleepを使いたくない、誰かがGetTickcount();でそれを作るのを助けることができる?

+2

? –

+0

申し訳ありませんが、別のものを削除しませんでした。 – Vbnetguy

答えて

0

fopen_s私はあなたがVisual Studioを使用していると仮定しています。あなたがSleep機能を使用できるように:

while(/* some condition */) { 
    Sleep(15000); 
    fprintf(file, "Test"); 
} 
+0

'fopen_s'はオプションです:http://port70.net/~nsz/c/c11/n1570.html#K.3.5.2.1 – Olaf

+0

スリープは良くない。そのゲームクライアント、私はそれを眠ることはできません..私はチックコインを使用して動作させる必要があります、私はチックカウントが変数値よりも大きいかどうかを確認するよりも、はい、ファイルに書き込む、変数に新しいチックカウントを設定し、開始から始めると、私はちょうどそれを作る方法を知らない。 – Vbnetguy

0

はあなたのために一部のタイミングん別のthreadを作成します。スレッドはメインプログラムに干渉しません。グローバル変数は15秒ごとに更新され、main threadがファイルに値を更新するようトリガします。あなたがタグ付けされている2つのうち、使用しているプログラミング言語

#include <pthread.h> 

int update_file = 0; 

void *time_thread(void *arg) 
{ 
    while (1) { 
    sleep(15); 
    update_file = 1; 
    } 
} 
int main(void) 
{ 
    pthread_t tid; 
    pthread_create(&tid, NULL, &time_thread, NULL); 
    while (1) { 
    while (update_file == 0); 
    FILE *file; 
     if (fopen_s(&file, "Accesslog.txt", "w") != 0) { 
      return; 
     } 
    fprintf(file, "Test"); 
    fclose(file); 
    update_file = 0; 
    } 
    return 0; 
} 
+0

それは動作しません。私はこれを私のアプリケーションが開かないようにする..私はCreateFileNow(){}関数を呼び出すと、アプリが起動し、15秒ごとに呼び出されます。それで私はGetTickCount();で動作させるように頼んだのです。私には良いことではありません。 – Vbnetguy

関連する問題