파일에 데이터를 쓰는 방법

손정수의 이미지

일정하게 초당 300바이트 씩 파일에 쓰고자 합니다.
그런데 문제는 1초에 몇 바이트가 쓰여졌는지 어떻게 알 수 있나요?
무작정 for로 돌리면 안될 것 같고요.
혹시 함수 중에 여기에 사용될 수 있는 것 있으면 추천해 주시면 정말 고맙겠습니다.
좋은 아이디어 있으시면 조언해 주십시오...

datamind의 이미지

이렇게 하면 안될까요??

write 버퍼 정의

while(1)
{
    if( write 버퍼에 데이타 체크 )
    {
        write( 300 byte );            
    }
    sleep(1);
}
pynoos의 이미지

write 값의 return 값을 모조리 놓치지 마세요.

송지석의 이미지

int len;       // 쓸 데이터 길이
int write_len'        // 쓴 데이터 길이
int Fd;       //file descriptor
char buf[MAX];   //데이터 버퍼
char *p_buf;       // 버퍼 포인터
...............
쓸 데이터가 생겼다!
..............
p_buf = buf; // 포인터 카피하고.

while(len)  ///쓸 데이터 길이
{
       write_len = write(Fd,p_buf,len);
       len -= write_len;
       p_buf += write_len;
       //usleep(0); 무작정 계속 쓰면 내부적으로는 busy waiting이 되어 고생하니까 필요하면 usleep을 추가하셔서 강제로 스케줄링을..
}//while

이렇게 하면 될까요?

실제로 while루프에서 sleep없이 계속 쓰면 busy waiting을 하는 건지... 잘 모르겠네요.