为什么C nanosleep()不在这里睡觉?

Wiz*_*Kiz 3 c sleep

我试图一次写到终端一行,但它只打印整个东西而不睡觉.如果我使用sleep(1)它会起作用.我只是不明白nanosleep是如何工作的?

void                                                                           
display_all(int fdin, int fdout)                                               
{                                                                              
    struct timespec tm1,tm2;                                                   

    tm1.tv_sec = 0;                                                            
    tm1.tv_nsec = 1000000000L;                                                                                                            
    while (display_line(fdin, fdout) == 80)                                    
    {                                                                          
        nanosleep(&tm1,&tm2);                                                  
    }                                                                          

}  
Run Code Online (Sandbox Code Playgroud)

display_line使用函数write写入STDOUT.

kay*_*lum 7

来自nanosleep手册页:

纳秒字段的值必须在0到999999999的范围内