Lab #6: Stat Overview Stat

Total Page:16

File Type:pdf, Size:1020Kb

Lab #6: Stat Overview Stat February 17, 2017 CSC 357 1 Lab #6: Stat Overview The purpose of this lab is for you to retrieve from the filesystem information pertaining to specified files. You will use portions of this lab in Assignment #4, so be sure to write code that can be reused. stat Write a simplified version of the stat utility available on some Unix distributions. This program should take any number of file names as command-line arguments and output information pertaining to each file as described below (you should use the stat system call). The output from your program should look as follows: File: ‘Makefile’ Type: Regular File Size: 214 Inode: 4702722 Links: 1 Access: -rw------- The stat system call provides more information about a file, but this lab only requires the above. The format of each field follows: • File: the name of the file being examined. • Type: the type of file output as “Regular File”, “Directory”, “Character Device”, “Block Device”, “FIFO”, or “Symbolic Link” • Size: the number of bytes in the file. • Inode: the file’s inode. • Links: the number of links to the file. • Access: the access permissions for the file. This field is the most involved since the output string can take many forms. The first bit of the access permissions denotes the type (similar to the second field above). The valid characters for the first bit are: b – Block special file. c – Character special file. d – Directory. l – Symbolic link. p – FIFO. - – Regular file. The remaining bits denote the read, write and execute permissions for the user, group, and others. For the read and write bits, if set, the bit is printed as ’r’ for read or ’w’ for write. If not set, then ’-’ is printed. The execute bit depends on whether the file is setuid (i.e., the setuid bit is set) or setgid (i.e., the setgid bit is set). It should be set as follows, s – setuid bit is set and owner execute bit set S – setuid bit is set and owner execute bit not set s – setgid bit is set and group execute bit set S – setgid bit is set and group execute bit not set x – if none of the above applies and the execute bit is set - – if none of the above applies.
Recommended publications
  • STAT 625: Statistical Case Studies 1 Our Computing Environment(S)
    John W. Emerson, Department of Statistics, Yale University © 2013 1 STAT 625: Statistical Case Studies John W. Emerson Yale University Abstract This term, I’ll generally present brief class notes and scripts, but much of the lecture material will simply be presented in class and/or available online. However, student participation is a large part of this course, and at any time I may call upon any of you to share some of your work. Be prepared. This won’t be a class where you sit and absorb material. I strongly encourage you to work with other students; you can learn a lot from each other. To get anything out of this course you’ll need to put in the time for the sake of learning and strengthening your skills, not for the sake of jumping through the proverbial hoop. Lesson 1: Learning how to communicate. This document was created using LATEX and Sweave (which is really an R package). There are some huge advantages to a workflow like this, relating to a topic called reproducible research. Here’s my thought: pay your dues now, reap the benefits later. Don’t trust me on everything, but trust me on this. A sister document was created using R Markdown and the markdown package, and this is also acceptable. Microsoft Office is not. So, in today’s class I’ll show you how I produced these documents and I’ll give you the required files. I recommend you figure out how to use LATEX on your own computer. You already have Sweave, because it comes with R.
    [Show full text]
  • System Calls and I/O
    System Calls and I/O CS 241 January 27, 2012 Copyright ©: University of Illinois CS 241 Staff 1 This lecture Goals Get you familiar with necessary basic system & I/O calls to do programming Things covered in this lecture Basic file system calls I/O calls Signals Note: we will come back later to discuss the above things at the concept level Copyright ©: University of Illinois CS 241 Staff 2 System Calls versus Function Calls? Copyright ©: University of Illinois CS 241 Staff 3 System Calls versus Function Calls Function Call Process fnCall() Caller and callee are in the same Process - Same user - Same “domain of trust” Copyright ©: University of Illinois CS 241 Staff 4 System Calls versus Function Calls Function Call System Call Process Process fnCall() sysCall() OS Caller and callee are in the same Process - Same user - OS is trusted; user is not. - Same “domain of trust” - OS has super-privileges; user does not - Must take measures to prevent abuse Copyright ©: University of Illinois CS 241 Staff 5 System Calls System Calls A request to the operating system to perform some activity System calls are expensive The system needs to perform many things before executing a system call The computer (hardware) saves its state The OS code takes control of the CPU, privileges are updated. The OS examines the call parameters The OS performs the requested function The OS saves its state (and call results) The OS returns control of the CPU to the caller Copyright ©: University of Illinois CS 241 Staff 6 Steps for Making a System Call
    [Show full text]
  • Stat System Administration Guide Updated - November 2018 Software Version - 6.2.0 Contents
    Quest® Stat® 6.2.0 System Administration Guide © 2018 Quest Software Inc. ALL RIGHTS RESERVED. This guide contains proprietary information protected by copyright. The software described in this guide is furnished under a software license or nondisclosure agreement. This software may be used or copied only in accordance with the terms of the applicable agreement. No part of this guide may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying and recording for any purpose other than the purchaser’s personal use without the written permission of Quest Software Inc. The information in this document is provided in connection with Quest Software products. No license, express or implied, by estoppel or otherwise, to any intellectual property right is granted by this document or in connection with the sale of Quest Software products. EXCEPT AS SET FORTH IN THE TERMS AND CONDITIONS AS SPECIFIED IN THE LICENSE AGREEMENT FOR THIS PRODUCT, QUEST SOFTWARE ASSUMES NO LIABILITY WHATSOEVER AND DISCLAIMS ANY EXPRESS, IMPLIED OR STATUTORY WARRANTY RELATING TO ITS PRODUCTS INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT. IN NO EVENT SHALL QUEST SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT, CONSEQUENTIAL, PUNITIVE, SPECIAL OR INCIDENTAL DAMAGES (INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF PROFITS, BUSINESS INTERRUPTION OR LOSS OF INFORMATION) ARISING OUT OF THE USE OR INABILITY TO USE THIS DOCUMENT, EVEN IF QUEST SOFTWARE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. Quest Software makes no representations or warranties with respect to the accuracy or completeness of the contents of this document and reserves the right to make changes to specifications and product descriptions at any time without notice.
    [Show full text]
  • Files and Directories Struct Stat File Types
    struct stat { dev_t st_dev; ino_t st_ino; mode_t st_mode; nlink_t st_nlink; Struct stat uid_t st_uid; gid_t st_gid; dev_t st_rdev; off_t st_size; /* SysV/sco doesn't have the rest... But Solaris, eabi does. */ #if defined(__svr4__) && !defined(__PPC__) && !defined(__sun__) Files and Directories time_t st_atime; time_t st_mtime; time_t st_ctime; #else time_t st_atime; Marco Gruteser long st_spare1; time_t st_mtime; Advanced Programming for Linux long st_spare2; time_t st_ctime; long st_spare3; long st_blksize; long st_blocks; long st_spare4[2]; #endif 1 }; 2 Why does the operating system File types (mode) need to distinguish these? • Regular file • Directory file • Character special file (device access, e.g. serial port) • Block special file (device access, e.g., disk) •FIFO (pipe) • Socket (network connection) • Symbolic link (pointer to another file) 3 4 Some operations only valid on File Access control list certain files • No lseek on Fifo or socket • Every file (includes directories, device • No write on directory files) has • Open on symlink requires redirection – owner user and owner group – Permissions (-rwxr-x---) •… 5 6 Process User- and Group-IDs File access checks • Real user ID • Automatically invoked on file open • Real group ID –Uses effective uid/gid • Effective user ID used for file • Manual invocation through access function possible • Effective group ID access checks What for? –Uses real uid/gid • Saved set-user-ID • Saved set-group-ID saved by exec 7 8 File access checks Setuid / setgid • Requires x permission on all
    [Show full text]
  • Advanced Unix/Linux System Program Instructor: William W.Y
    Advanced Unix/Linux System Program Instructor: William W.Y. Hsu › Files › Directory CONTENTS 3/15/2018 INTRODUCTION TO COMPETITIVE PROGRAMMING 2 stat(2) family of functions #include <sys/types.h> #include <sys/stat.h> int stat(const char *path, struct stat *sb); int lstat(const char *path, struct stat *sb); int fstat(int fd, struct stat *sb); Returns: 0 if OK, -1 on error › All these functions return extended attributes about the referenced file (in the case of symbolic links, lstat(2) returns attributes of the link, others return stats of the referenced file). 3/15/2018 ADVANCED UNIX/LINUX SYSTEM PROGRAMMING 3 stat(2) family of functions struct stat { dev_t st_dev; /* ID of device containing file/ ino_t st_ino; /* inode number */ mode_t st_mode; /* protection */ nlink_t st_nlink; /* number of hard links */ uid_t st_uid; /* user ID of owner */ gid_t st_gid; /* group ID of owner */ dev_t st_rdev; /* device ID (if special file) */ off_t st_size; /* total size, in bytes */ blksize_t st_blksize; /* blocksize for filesystem I/O */ blkcnt_t st_blocks; /* number of blocks allocated */ time_t st_atime; /* time of last access */ time_t st_mtime; /* time of last modification */ time_t st_ctime; /* time of last status change */ }; 3/15/2018 ADVANCED UNIX/LINUX SYSTEM PROGRAMMING 4 struct stat: st_mode › The st_mode field of the struct stat encodes the type of file: – regular – most common, interpretation of data is up to application – directory – contains names of other files and pointer to information on those files. Any process can read, only kernel can write. – character special – used for certain types of devices – block special – used for disk devices (typically). › All devices are either character or block special.
    [Show full text]
  • Operating Systems File Systems
    OPERATING SYSTEMS FILE SYSTEMS Jerry Breecher 10: File Systems 1 FILE SYSTEMS This material covers Silberschatz Chapters 10 and 11. File System Interface The user level (more visible) portion of the file system. • Access methods • Directory Structure • Protection File System Implementation The OS level (less visible) portion of the file system. • Allocation and Free Space Management • Directory Implementation 10: File Systems 2 File FILE SYSTEMS INTERFACE Concept • A collection of related bytes having meaning only to the creator. The file can be "free formed", indexed, structured, etc. • The file is an entry in a directory. • The file may have attributes (name, creator, date, type, permissions) • The file may have structure ( O.S. may or may not know about this.) It's a tradeoff of power versus overhead. For example, a) An Operating System understands program image format in order to create a process. b) The UNIX shell understands how directory files look. (In general the UNIX kernel doesn't interpret files.) c) Usually the Operating System understands and interprets file types. 10: File Systems 3 FILE SYSTEMS INTERFACE File Concept A file can have various kinds of structure ° None - sequence of words, bytes • Simple record structure • Lines • Fixed length • Variable length • Complex Structures • Formatted document • Relocatable load file • Who interprets this structure? • Operating system • Program 10: File Systems 4 FILE SYSTEMS INTERFACE File Concept Attributes of a File ° Name – only information kept in human-readable form • Identifier – unique tag (number) identifies file within file system • Type – needed for systems that support different types • Location – pointer to file location on device • Size – current file size • Protection – controls who can do reading, writing, executing • Time, date, and user identification – data for protection, security, and usage monitoring • Information about files is kept in the directory structure, which is maintained on the disk.
    [Show full text]
  • Basics of UNIX
    Basics of UNIX August 23, 2012 By UNIX, I mean any UNIX-like operating system, including Linux and Mac OS X. On the Mac you can access a UNIX terminal window with the Terminal application (under Applica- tions/Utilities). Most modern scientific computing is done on UNIX-based machines, often by remotely logging in to a UNIX-based server. 1 Connecting to a UNIX machine from {UNIX, Mac, Windows} See the file on bspace on connecting remotely to SCF. In addition, this SCF help page has infor- mation on logging in to remote machines via ssh without having to type your password every time. This can save a lot of time. 2 Getting help from SCF More generally, the department computing FAQs is the place to go for answers to questions about SCF. For questions not answered there, the SCF requests: “please report any problems regarding equipment or system software to the SCF staff by sending mail to ’trouble’ or by reporting the prob- lem directly to room 498/499. For information/questions on the use of application packages (e.g., R, SAS, Matlab), programming languages and libraries send mail to ’consult’. Questions/problems regarding accounts should be sent to ’manager’.” Note that for the purpose of this class, questions about application packages, languages, li- braries, etc. can be directed to me. 1 3 Files and directories 1. Files are stored in directories (aka folders) that are in a (inverted) directory tree, with “/” as the root of the tree 2. Where am I? > pwd 3. What’s in a directory? > ls > ls -a > ls -al 4.
    [Show full text]
  • Lecture 6  Delete  Rename File Systems  Open  Close January 26, 2005  Write  Read  Seek  Get Attributes  Set Attributes  Append
    File Operations create Lecture 6 delete rename File Systems open close January 26, 2005 write read seek get attributes set attributes append Blocking vs Nonblocking File I/O Blocking: wait until finished or interrupt (Almost) everything a file: (EINTR). /dev/audio: audio device /dev/hda: first IDE hard drive Nonblocking: return immediately. /dev/cdrom: CDROM drive /dev/null: “black hole” directories Users: logical stream of bytes. Simultaneous access. Positioning. File I/O: Open File I/O: Positioning #include <sys/types.h> off_t lseek(int fd, off_t offset, int whence); #include <sys/stat.h> #include <fcntl.h> SEEK_SET: move to offset from beginning of file fd = open(pathname, flags, [mode]); SEEK_CUR: move to offset from current value SEEK_END: move to offset from end of file O_RDONLY: reading only O_WRONLY: writing only O_RDWR: reading/writing O_TRUNC: reset file O_EXCL: cancel if file exists O_APPEND: file position mode: permissions if new file is created 1 File System File Descriptor Duplication disk #include <unistd.h> partition partition partition partition /tmp /home /usr / int dup(int fd); int dup2(int fd, int new_fd); file system directory and data blocks boot super i-list dir. block block block Example: dup2(1,2); data blocks directory block i-node filename number i-node i-node ... i-node File Control Special Files #include <sys/types.h> /dev/urandom #include <unistd.h> /dev/fd #include <fcntl.h> /dev/zero int fcntl(fd, cmd, arg, ...); /dev/null /proc: F_DUPFD: dup() /proc/cpuinfo F_GETFD,
    [Show full text]
  • C Stat Modification Time
    C Stat Modification Time Sheldon remains fratchy: she teams her perquisites rebinding too staccato? Gruntled Chaddie ligaturing no tantalisation basks bleeding after Weslie sleek hospitably, quite octonary. Socioeconomic Gabriele uncouple that schizocarps coff howsoever and propagates tributarily. Time just last access timet stmtime time however last modification timet. Unlike hard links, how many seconds can be stored in a timestamp? 1 List all stat and the stat module along with os move function moves a directory. Ncurses in may course. Is a directory links do i suppose your admin if it: one source for c stat modification time stored for reading, as offsets from updating at a given, you must still update. Stat and stat64. If you for all of its times associated with commit. Do some other operations to each process has proved surprisingly difficult to explain technology in. It may not perfect because these numbers. OR of S_IROTH, as and might manage it from your directory stream. Use the '-m' option to drastic the modified time but the file touch m atxt term blank check the file statistics with the stat. Utc modification date on a blank. Filesystem library C17 Regular expressions library C11. If the grip is none equal around the sale time minus half of year than hours and minutes are printed. What is closed after retrieving them, or across dst correction; only supports one hour if bitcoin becomes void when a provision for. It changes when a common command allows us! C The month day week year about the reduction or termination of guest support.
    [Show full text]
  • Perf Tool: Performance Analysis Tool for Linux
    Performance Measurements: Perf Tool /************************************************************************************ ** Notes on Linux perf tool ** ** Intended audience: Those who would like to learn more about ** Linux perf performance analysis and profiling tool. ** ** Used: CPE 631 Advanced Computer Systems and Architectures ** CPE 619 Modeling and Analysis of Computer and Communication Systems ** ** ver 0.1, Spring 2012 ** ver 0.2, Spring 2018 ** ver 0.3, Spring 2021 ** ** @Aleksandar Milenkovic, [email protected] ************************************************************************************/ Perf Tool: Performance Analysis Tool for Linux 1. Introduction Perf is a profiler tool for Linux 2.6+ based systems that abstracts away CPU hardware differences in Linux performance measurements and presents a simple command line interface. It covers hardware level (CPU/PMU, Performance Monitoring Unit) features and software features (software counters, tracepoints) as well. To learn more about perf type in man perf. <<~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -bash-4.2$ man perf -bash-4.2$ $ man perf-stat -bash-4.2$ $ man perf-top ... # Note before the start, do the following to enable devtoolset-6 -bash-4.2$ scl enable devtoolset-6 bash # You can verify that you are using the right environment -bash-4.2$ bash-4.2$ which gcc /opt/rh/devtoolset-6/root/usr/bin/gcc ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~>> 2. Commands The perf tool offers a rich set of commands to collect and analyze performance and trace data. The command
    [Show full text]
  • Distributed File Systems Introduction File System Modules File Attribute
    Introduction Distributed file systems support the sharing of information in the form of files throughout Distributed File Systems the intranet. A distributed file system enables programs to B.Ramamurthy store and access remote files exactly as they do on local ones, allowing users to access files from any computer on the intranet. Recent advances in higher bandwidth connectivity of switched local networks and disk organization have lead high performance and highly scalable file systems. 9/28/2004 B.Ramamurthy 1 9/28/2004 B.Ramamurthy 2 Storage systems and their properties File system modules Sharing Persis- Distributed Consistency Example tence cache/replicas maintenance Directory module: relates file names to file IDs Main memory 1 RAM File module: relates file IDs to particular files File system1 UNIX file system Access control module: checks permission for operation requested Distributed file system Sun NFS Web Web server File access module: reads or writes file data or attributes Distributed shared memory Ivy (Ch. 16) Block module: accesses and allocates disk blocks Remote objects (RMI/ORB)1 CORBA Device module: disk I/O and buffering Persistent object store 1 CORBA Persistent Object Service Persistent distributed object store PerDiS, Khazana 9/28/2004 B.Ramamurthy 3 9/28/2004 B.Ramamurthy 4 File attribute record structure UNIX file system operations File length filedes = open(name, mode) Opens an existing file with the given name. Creation timestamp filedes = creat(name, mode) Creates a new file with the given name. Both operations deliver a file descriptor referencing the open Read timestamp file. The mode is read, write or both.
    [Show full text]
  • RTEMS Filesystem Design Guide Release 6.887B8d3 (30Th September 2021) © 1988, 2020 RTEMS Project and Contributors
    RTEMS Filesystem Design Guide Release 6.887b8d3 (30th September 2021) © 1988, 2020 RTEMS Project and contributors CONTENTS 1 Preface 3 2 Pathname Evaluation5 2.1 Pathname Evaluation Handlers............................6 2.2 Crossing a Mount Point During Path Evaluation...................7 2.3 The rtems_filesystem_location_info_t Structure...................8 3 System Initialization9 3.1 Base Filesystem.................................... 10 3.1.1 Base Filesystem Mounting.......................... 10 4 Mounting and Unmounting Filesystems 11 4.1 Mount Points...................................... 12 4.2 Mount Table Chain................................... 13 4.3 Adding entries to the chain during mount...................... 14 4.4 Removing entries from the chain during unmount................. 15 5 System Call Development Notes 17 5.1 access.......................................... 19 5.2 chdir.......................................... 20 5.3 chmod......................................... 21 5.4 chown.......................................... 22 5.5 close.......................................... 23 5.6 closedir......................................... 24 5.7 dup() Unimplemented................................. 25 5.8 dup2() Unimplemented................................ 26 5.9 fchmod......................................... 27 5.10 fcntl().......................................... 28 5.11 fdatasync........................................ 29 5.12 fpathconf........................................ 30 5.13 fstat..........................................
    [Show full text]