2

AIX で statvfs 関数呼び出しを使用しています。そしてGCCコンパイラを使用しています。プリプロセッサによって statvfs64 に解決される statvfs 呼び出しを希望します。

例: Solaris では、gcc で「-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64」フラグを使用すると、statvfs64 に解決されます。

statvfs から statvfs64 に解決する AIX で同様のフラグを取得するのを手伝ってください。

よろしくお願いします。 シバラム T

4

3 に答える 3

0

私はAIXシステムを持っていないので、設定するフラグを教えられません。ただし、Solarisでは、sys/statvfs.hこれがどのように機能するかを表示および確認できます。たとえば、statvfs64周囲の#ifdefブロックを検索して探します。線が表示されます

#if defined(_LARGEFILE64_SOURCE)
    typedef struct statvfs64 {
    .....
    } statvfs64_t;
#endif

#if !defined(_LP64) && _FILE_OFFSET_BITS == 64
...
#define statvfs_t               statvfs64_t
#define statvfs                 statvfs64
#define fstatvfs                fstatvfs64
#endif

AIXでもまったく同じことができるようになります。ただし、AIXの動作は異なり、プリプロセッサを使用して32ビットバージョンと64ビットバージョンを切り替えることはできません。

よくわからない場合は、ここに内容を投稿していただければ、おsys/statvfs.h調べいたします。

于 2010-01-19T13:57:49.207 に答える
0

AIX 上の iirc では、_LARGE_FILES トークン セットが必要です。これにより、暗黙的な大きなファイルのサポートが有効になります。

-D_LARGE_FILES 

statvfs64 を明示的に呼び出したい場合は、次のことを行う必要があります。

-D_LARGE_FILE_API
于 2010-01-19T14:34:23.303 に答える