-demoログイン

する#include <stdio.hに>
する#include <STDLIB.H>
の#include <string.hの>
する#include <TIME.H>
する#include <SYS / TIME.H>
の#include <ERRNO.H>

構造体データ{型定義
  するchar * STR。
  長い時間;
  int型symbal;
} DATA。

getCurrentTime()int64_tの
{
  構造体体timevalテレビ。
  gettimeofday(&テレビ、NULL); 
  tv.tv_sec + tv.tv_usec / 1000×1000戻ります。
}

int型write_log(チャー* c)は{
  FILEの*のFP。
  オングCURTIME = getCurrentTime()。
  int型のLINE_COUNT。

*白金DATA;
白金=(データ*)のmalloc(はsizeof(DATA)); 
//のmemcpy(PT-> STR、C、strlenを(C))、アレイを使用してこのようなアプローチを使用する場合
PT-> STR = C。
PT->時間= CURTIME;
PT-> = symbal;
のprintf( "%S \のN-"、PT-> STR);
FPは、関数fopen( "SYSTEM.LOG"、 "R&LT +を")=;
IF(FP == NULL) {
  fprintfの(stderrに、 "ファイルがSYSTEM.LOGエラー%S \ N-を開いて!"、はstrerror(errnoに));
  // doSystem( "タッチxxxfile.log");
  0を返します;
}

しばらく(!(LINE_COUNT =はfgetc(FP))= EOF)
{
  場合(LINE_COUNT == '\ n'の){
  LINE_COUNT ++;
}

IF(LINE_COUNT <100){
  //のfseek(FP、はsizeof(* FP)、SEEK_END)。
  fwriteの(PT、はsizeof(DATA)、1、FP)。
}他{
  // doSystem( "SED -i '0,49d' SYSTEM.LOG")。
  fwriteの(PT、はsizeof(DATA)、1、FP)。
}

フリー(PT)。
FCLOSE(FP)。
0を返します。
}


INTメイン(int型ARGC、チャー** ARGV)
{
  するchar * P = "食べ物が身体にあるように"。
  INT RET = write_log(P)。
  printf( "%d個の\ n"、RET)。
  RETを返します。
}

 

おすすめ

転載: www.cnblogs.com/Sam-2018/p/log.html