일정하게 초당 300바이트 씩 파일에 쓰고자 합니다.
그런데 문제는 1초에 몇 바이트가 쓰여졌는지 어떻게 알 수 있나요?
무작정 for로 돌리면 안될 것 같고요.
혹시 함수 중에 여기에 사용될 수 있는 것 있으면 추천해 주시면 정말 고맙겠습니다.
좋은 아이디어 있으시면 조언해 주십시오...
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을 하는 건지... 잘 모르겠네요.
이렇게 하면 안될까요?
이렇게 하면 안될까요??
write 값의 return 값을 모조리 놓치지 마세요.
write 값의 return 값을 모조리 놓치지 마세요.
---
http://coolengineer.com
[code:1]int len; // 쓸 데이터 길이int
이렇게 하면 될까요?
실제로 while루프에서 sleep없이 계속 쓰면 busy waiting을 하는 건지... 잘 모르겠네요.
rommance.net
댓글 달기