マニュアルページにはopenat(2)
多くの利点が記載されていますが、open(2)
欠点はまったく扱っていないようです。
Cでパスを手動で接続するのは難しいかもしれません(残念ながら、POSIXの一部ではなく、ほとんどの割り当てロジックが望ましくない、またはオフロードできないと仮定した場合asprintf(3)
)、これについてのファイル記述子を取得するつもりです。デフォルトディレクトリを作成し、それを使用してこのディレクトリに関連するファイルにアクセスしますopenat(2)
。
このアプローチに欠点はありますか?
答え1
1つの欠点があります。openat
この方法を使用するには、追加のファイル記述子が必要です。
私が知る限り、これが唯一のものです(私の考えには些細なことです)。