1

私は現在、システムプログラミングの宿題を書いていますが、ある部分では、ディレクトリ内のファイルの情報を取得する必要があります。

ファイルの統計には、型ctime()を変換してポインタを返す関数があります。time_tstring

しかし、uid_toff_tタイプはどうですか?インターネットで検索したところ、機能が見つかりませんでした。または、機能がない場合は、その機能の実装方法を教えてください。

4

5 に答える 5

4

どちらも算術型として定義されており(http://www.opengroup.org/onlinepubs/009695399/basedefs/sys/types.h.html)、実際には正で積分されています。したがって、unsigned long longにキャストし、「%llu」を指定したsprintfを使用して文字列に変換できます。

于 2009-04-28T10:22:48.520 に答える
2

size_toff_tは単に符号なし整数型です。(編集:off_t長いですか?レッスンは、ヘッダーを確認してください!)

したがって、sprintf(または何でも)を使用して、「%i」形式指定子を使用してそれらを変換します。

編集時:がらくた、あなたは私が答えている間にに変わっsize_tた。で定義されています; あっち見て。(これも符号なし積分型ですが、。)uid_tuid_ttypes.hunsigned short

于 2009-04-28T10:15:11.000 に答える
1

Linuxのsnprintf()は、タイプの値に対して「z」フォーマット指定子をサポートしますsize_t。これがどれほどポータブルかわからない場合は、「準拠」セクションを注意深く調べる必要があります。

の場合off_t、最大の符号なし整数型にキャストする必要がある場合があります。つまりunsigned long、「lu」指定子を使用します。

于 2009-04-28T10:16:06.630 に答える
0

off_tlong int:format = "%ld"

size_tunsigned int:format = "%u"

これらの形式をsprintf関数で使用して、char*に変換できます。

于 2009-04-28T10:15:41.017 に答える