728x90
화일을 출력하기 전에 화일이 완전히 갱신되었다는 것은 st_mtime이 바뀐 것을 확인하고 출력함
#include <stdio.h>
#include <stdlib.h>
#include <sys/stat.h>
#include <fcntl.h>
void cmp( const char *, time_t );
struct stat sb;
main( int argc, char* argv[])
{
int i=1;
time_t last_time;
if( argc != 2 )
{
fprintf( stderr, "usage: slowwatch filename\n");
exit(1);
}
while(i)
{
if( stat( argv[1], &sb ) != -1)
i = 0;
}
last_time = sb.st_mtime;
while(1)
{
cmp( argv[1], last_time );
sleep(10);
}
}
void cmp( const char *name, time_t last )
{
int fd;
ssize_t nread;
char buf[BUFSIZ];
if( stat(name, &sb) == -1 || sb.st_mtime != last )
{
if( (fd = open(name, O_RDONLY)) == -1 )
{
printf("%s removed\n", name);
exit(0);
}
while( (nread = read(fd, buf, BUFSIZ)) > 0)
write(1, buf, nread);
exit(0);
}
}
반응형
'호기심_메모' 카테고리의 다른 글
HTTP Method (0) | 2021.08.13 |
---|---|
lsoct / octls (0) | 2021.08.13 |
UNIX 메뉴얼에 나와있는 명세(specification)를 참조하여, chmod 작성 (0) | 2021.08.13 |
adb shell input keyevent / adb shell sendevent (0) | 2021.08.13 |
[환경세팅] Android 앱 진단 (0) | 2021.08.13 |