(root)/
coreutils-9.4/
lib/
root-dev-ino.c
       1  /* root-dev-ino.c -- get the device and inode numbers for '/'.
       2     Copyright (C) 2003-2023 Free Software Foundation, Inc.
       3  
       4     This program is free software: you can redistribute it and/or modify
       5     it under the terms of the GNU General Public License as published by
       6     the Free Software Foundation, either version 3 of the License, or
       7     (at your option) any later version.
       8  
       9     This program is distributed in the hope that it will be useful,
      10     but WITHOUT ANY WARRANTY; without even the implied warranty of
      11     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
      12     GNU General Public License for more details.
      13  
      14     You should have received a copy of the GNU General Public License
      15     along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
      16  
      17  /* Written by Jim Meyering. */
      18  
      19  #include <config.h>
      20  
      21  #include "root-dev-ino.h"
      22  
      23  #include <stdlib.h>
      24  
      25  /* Call lstat to get the device and inode numbers for '/'.
      26     Upon failure, return nullptr.  Otherwise, set the members of
      27     *ROOT_D_I accordingly and return ROOT_D_I.  */
      28  struct dev_ino *
      29  get_root_dev_ino (struct dev_ino *root_d_i)
      30  {
      31    struct stat statbuf;
      32    if (lstat ("/", &statbuf))
      33      return nullptr;
      34    root_d_i->st_ino = statbuf.st_ino;
      35    root_d_i->st_dev = statbuf.st_dev;
      36    return root_d_i;
      37  }