顧客の要求に応じて、デフォルトのカーネルと共にCentOS 5.6をインストールしました。このカーネルをインストールした後、 time.h ファイルに#define CLOCK_MONOTONIC
。
これで、リアルタイムカーネルは、私たちのコードで使用したいカーネル開発と共にインストールされますCLOCK_MONOTONIC_RAW
。カーネルヘッダーの一部として存在しますが、コードをコンパイルすると、標準ユーザースペースの埋め込みには見つかりません。
time.h
私の質問は、ライブカーネルを使用して基本的に見つかるものを含む/交換する正しい手順は何ですか?私の研究では、シンボリックリンクが悪いようです。それでは、これについてどうすればよいですか?手順または手順は何ですか? CentOS 6.0または5.7へのアップグレードは、お客様の要件に応じたオプションではありません。
ベストアンサー1
ヘッダファイルソースには主な違いがあります。
<time.h>
glibcによって提供されます(例:glibc-headers
パッケージ)<linux/time.h>
Linuxカーネルヘッダファイルで提供されています。
カーネルとヘッダーパッケージを変更しても効果はありません<time.h>
。 glibcを変更しないと、これを行うことができません。
<time.h>
glibcのインクルード<bits/time.h>
がegで解決され定義されて/usr/include/x86_64-linux-gnu/bits/time.h
いることを確認する必要がありますCLOCK_MONOTONIC_RAW
。それ以外の場合はアップグレードできない場合は、次のコードを含める必要があります。
#include <time.h>
#ifndef CLOCK_MONOTONIC_RAW
# define CLOCK_MONOTONIC_RAW 4
#endif