する#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を返します。
}