2012-03-05 9 views
0

Я очень новичок в области программирования. Сейчас я тестирую некоторые базовые программы в Linux. Сегодня я начал с функций времени в time.h, но я иногда застреваю. Я сделал следующий код, чтобы получить задержку в секундах.Сведения о заголовочном файле Unix

#include <stdio.h> 
#include <sys/types.h> 
#include <time.h> 

void delay_sec (int seconds); 

int main() 
{ 
    printf ("\nhaii\n"); 
    delay_sec (5); 
    printf ("\nbyee\n"); 

    return 0; 
} 

void delay_sec (int seconds) 
{ 
    time_t t1 = time (NULL); 
    while ((time (NULL) - t1) < seconds) 
     ; 
} 

Это работает для меня. Но мне нужна задержка в миллисекундах. Я прочитал руководство time.h, попробовал несколько функций, определенных там, но ничего не работает, как я ожидал. Дело в том, что я действительно не понимал, что делают эти функции.

Мой вопрос - не что иное, как найти что-то вроде документации по всем функциям и деталям аргументов, возвращаемое значение, я имею в виду руководство пользователя для всех функций, определенных во всех файлах заголовков.

Я не верю, что что-то подобное действительно существует, но если вы поможете мне найти что-то близкое к этому, я буду очень благодарен.

Я планирую научиться вилке, трубе, сигналам, процессу, потоку и т. Д. ..., я знаю, что это долгий путь. Пожалуйста, помогите мне.

ответ

2

Вы должны использовать стандартную sleep функции POSIX, вместо того, чтобы ваш занят ждет delay_sec ... (и использовать usleep задержки микросекунд, или еще лучше nanosleep)

Я предлагаю установить справочные страницы для развития (например, manpages-dev пакет на Debian или Ubuntu).

В противном случае, посмотрите, например. на the sleep(3) man page здесь.

Я настоятельно рекомендую прочитать хорошую книгу на Advanced Unix Programming, а затем прочитать некоторую книгу на Advanced Linux Programming, а затем хорошую книгу о потоках POSIX.

Кроме того, узнать больше о Википедии Linux kernel, System calls и т.д. и т.п.

+1

Дополнительный ресурс: [POSIX 2008] (http://pubs.opengroup.org/onlinepubs/9699919799) документации. Это говорит вам, что является стандартным, а что нет; это может помочь вам сохранить ваш код переносимым (если переносимый вопрос, который он может и не быть, но, вероятно, будет в конечном итоге). –