• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:sys/types.hの必要性について)

sys/types.hの必要性について

このQ&Aのポイント
  • #include<stdio.h> #include<stdlib.h> #include<sys/types.h> #include<sys/stat.h> #include<unistd.h> int main (int argc,char *argv[]) { struct stat buf[2],*p; if(argc!=3) { fprintf(stderr,"Usage:newer file1 file2\n"); exit(EXIT_FAILURE); } p=buf; if(stat(argv[1],p)<0) { perror("stat"); exit(EXIT_FAILURE); } p++; if(stat(argv[2],p)<0) { perror("stat"); exit(EXIT_FAILURE); } if(buf[0].st_mtime>buf[1].st_mtime) { printf("%s\n",argv[1]); } else { printf("%s\n",argv[2]); } return EXIT_SUCCESS; }
  • 上記のプログラムでは、<sys/types.h>というヘッダーファイルを使用しています。このヘッダーファイルは、システムコールやディスクリプタ、ファイルの属性などの基本的なデータ型や定数を宣言しています。
  • <sys/types.h>は、プログラムでファイルの属性やパーミッション、ファイルディスクリプタなどの情報を取得するために必要です。具体的には、struct stat型の変数やファイルディスクリプタを宣言する際に使用されます。また、プロセスIDなどのシステムリソースを扱うためのデータ型も定義されています。

質問者が選んだベストアンサー

  • ベストアンサー
  • jacta
  • ベストアンサー率26% (845/3158)
回答No.4

statに必要です。 仮に、<sys/types.h>をインクルードせずにコンパイルでき、動作に問題がないとしても移植性に問題が出ます。 仕様で<sys/types.h>のインクルードが要求されているのであれば、「たまたま」コンパイル・実行できることに期待せず、要求に従いましょう。

pontapass
質問者

補足

statに必要というのは、stat構造体を使うときに、必要ということでしょうか?

その他の回答 (4)

  • php504
  • ベストアンサー率42% (926/2160)
回答No.5

sys/stat.h内で #if !defined(__TYPES_H) #include <sys/types.h> #endif みたいにincludeしている場合もありますが自前でincludeして置いた方がいいでしょう(もちろん#include <sys/stat.h>の前に)

  • pick52
  • ベストアンサー率35% (166/466)
回答No.3

よく知らないので的を外している可能性大ですが、 types なので 定数置換(つまり大文字の定数値)をやってるんじゃないでしょうか。 まあ、ANo.1さんの仰るとおりにここで聴く前にコメントアウトして 自分で実験してみる方が早いと思いますけど。 (百聞は一見にしかずです)

  • koko_u_
  • ベストアンサー率18% (459/2509)
回答No.2

>上記のプログラムでは<sys/types.h>を使っていますが、 >どこの部分で必要になるのでしょうか? そもそも何故あなたはそのヘッダをインクルードしたんですか?

  • asuncion
  • ベストアンサー率33% (2127/6289)
回答No.1

外してコンパイルしたときにエラーが出たら、 その箇所で必要です。

関連するQ&A