Sponsored Content
Top Forums Programming Using stat() to determine file permissions Post 41337 by kowrip on Thursday 2nd of October 2003 05:45:08 PM
Old 10-02-2003
Quote:
Originally posted by Perderabo
I can't believe you even got that to compile. statbuf.st_mode & S_IWOTH is not an l-value. Please tell me that the = in the if statement is really an == which would at least be legal.

Look at your subexpression:
(statbuf.st_mode & S_IWGRP == S_IWGRP)

First you are asking the compiler if S_IWGRP is equal to S_IWGRP. It is, so that becomes a 1. Next you are doing a bitwise "and" of 1 and statbuf.st_mode. So the whole subexpression is asking if the last bit of statbuf.st_mode is on.

You need to use:
((statbuf.st_mode & S_IWGRP) == S_IWGRP)
to get the effect that you want.
Thanks. I knew it was something stupid. I hardly ever use the bitwise operators so that's why I was confused. It makes sense now too because the execute bit was the one that was causing the expression to be TRUE. That is the last bit in that entire bit mask. Thanks again.
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

determine owner directory permissions from within the directory

From within a directory, how do I determine whether I have write permission for it. test -w pwd ; echo ? This doesn't work as it returns false, even though I have write permission. (4 Replies)
Discussion started by: Sniper Pixie
4 Replies

2. Shell Programming and Scripting

Using 'stat' to determine file system type (with Zenity)

edited and removed (0 Replies)
Discussion started by: mdpalow
0 Replies

3. Shell Programming and Scripting

cp: cannot stat: No such file or directory

Hi there, I need some help with cp files from one directory into several others. The code is as follows: SUB=`ls src_directory | wc -l` OUT_LOOP=$(($SUB / $MK_NUMS)) IN_LOOP=$(($SUB % $MK_NUMS)) COUNT=$MK_NUMS while ] do mkdir dst_directory$COUNT ls -1 src_directory |... (4 Replies)
Discussion started by: Krush187
4 Replies

4. SuSE

cp: cannot stat no such file or directory

#!/bin/ksh cp /etc/apache2/vhosts.d/orginal/test-yast2_vhost.conf-bk /etc/apache2/vhosts.d/test-yast2_vhost.conf /usr/sbin/rcapache2 graceful when i ran this script I'm getting following error. cp: cannot stat /etc/apache2/vhosts.d/orginal/test-yast2_vhost.conf-bk no such file or directory... (1 Reply)
Discussion started by: s_linux
1 Replies

5. Shell Programming and Scripting

using File::stat

Hello everyone, I need some help on a perl script. The script is to open a dir and print out the date of last modification on all files. I'm been trying this code but it doesn't work. use File::stat; open (D,"$ARGV") or die "Can't open\n"; while (defined ($file = readdir D)) { next... (3 Replies)
Discussion started by: new bie
3 Replies

6. Shell Programming and Scripting

Mv : cannot stat :no such file or directory

this is my script x=1 o=0 while do fi ];then (this check is a certain extension with a number exist) let x++ else mv /var/log/mrnet.log.1.gz /var/log/mrnet.log.$x.gz o=1 fi done mrnet.log.1.gz exist already... (1 Reply)
Discussion started by: Froob
1 Replies

7. UNIX for Dummies Questions & Answers

Cp: cannot stat...: no such file or directory

Please review the issue below and tell me what I need to do. I cannot copy the zip file. $ ls -l total 10 drwxrwx--- 1 root vboxsf 0 Feb 1 16:10 sf_Temp drwxrwx--- 2 root vboxsf 4096 Jan 31 17:59 sf_VBoxShared dr-xr-xr-x 6 oracle root 2048 Dec 19 09:20 VBOXADDITIONS_4.2.6_82870 $ cp -r... (2 Replies)
Discussion started by: lutus
2 Replies

8. Shell Programming and Scripting

Cp: cannot stat No such file or directory

Hi Please review this script and let me know what i need to do. This is my script #!/bin/bash #SCRIPT: forms.sh #PURPOSE: Process a file line by line with redirected while-read loop. #PURPOSE: and copy the forms to the follder foldername=sample_dir mkdir -p $foldername while read... (5 Replies)
Discussion started by: Rami Reddy
5 Replies

9. Solaris

/bin/find: stat() error <File> : No such file or directory

Hi, I am getting below error in Solaris 10 SPARC when trying to issue a search on /var/tmp partition Below is the query /bin/find /var/tmp/ -type f -atime +1 Below is the result /bin/find: stat() error <File> : No such file or directory (28 Replies)
Discussion started by: prash358
28 Replies

10. UNIX for Dummies Questions & Answers

On Solaris, without stat, how to check how old a file is?

Hi, How do I check how old a file is? That is, is it 1 day old, 1 year old, generated x hours ago? Currently, I receive a supposed to be daily report and in the last few times, it has not been recent, that is instead of the one generated for the day, it is one that was created yesterday or... (3 Replies)
Discussion started by: newbie_01
3 Replies
LFC_STAT(3)						       LFC Library Functions						       LFC_STAT(3)

NAME
lfc_stat - get information about a LFC file or directory in the name server SYNOPSIS
#include <sys/types.h> #include "lfc_api.h" int lfc_lstat (const char *path, struct lfc_filestat *statbuf) int lfc_stat (const char *path, struct lfc_filestat *statbuf) int lfc_statx (const char *path, struct lfc_fileid *file_uniqueid, struct lfc_filestat *statbuf) DESCRIPTION
lfc_stat gets information about a LFC file or directory in the name server. lfc_lstat is identical to lfc_stat except for symbolic links. lfc_lstat retrieves information about the link itself, while lfc_stat gets information about the file/directory referenced by the symbolic link. lfc_statx returns the same information plus the file unique id (name server hostname and file id). The file can be specified by path name or by file_uniqueid. If both are given, file_uniqueid is used. path specifies the logical pathname relative to the current LFC directory or the full LFC pathname. The structure pointed to by statbuf contains the following members: u_signed64 fileid; /* entry unique identifier */ mode_t filemode; /* see below */ int nlink; /* number of files in a directory */ uid_t uid; gid_t gid; u_signed64 filesize; time_t atime; /* last access to file */ time_t mtime; /* last file modification */ time_t ctime; /* last metadata modification */ short fileclass; /* 1--> experiment, 2 --> user */ char status; /* '-' --> online, 'm' --> migrated */ filemode is constructed by OR'ing the bits defined in <sys/stat.h> under Unix or "statbits.h" under Windows/NT: S_IFLNK 0xA000 symbolic link S_IFREG 0x8000 regular file S_IFDIR 0x4000 directory S_ISUID 0004000 set user ID on execution S_ISGID 0002000 set group ID on execution S_ISVTX 0001000 sticky bit S_IRUSR 0000400 read by owner S_IWUSR 0000200 write by owner S_IXUSR 0000100 execute/search by owner S_IRGRP 0000040 read by group S_IWGRP 0000020 write by group S_IXGRP 0000010 execute/search by group S_IROTH 0000004 read by others S_IWOTH 0000002 write by others S_IXOTH 0000001 execute/search by others RETURN VALUE
This routine returns 0 if the operation was successful or -1 if the operation failed. In the latter case, serrno is set appropriately. ERRORS
ENOENT The named file/directory does not exist or is a null pathname. EACCES Search permission is denied on a component of the path prefix. EFAULT path or statbuf is a NULL pointer. ENOTDIR A component of path prefix is not a directory. ENAMETOOLONG The length of path exceeds CA_MAXPATHLEN or the length of a path component exceeds CA_MAXNAMELEN. SENOSHOST Host unknown. SENOSSERV Service unknown. SECOMERR Communication error. ENSNACT Name server is not running or is being shutdown. SEE ALSO
Castor_limits(4), lfc_chdir(3), lfc_chmod(3), lfc_chown(3), lfc_creatg(3) AUTHOR
LCG Grid Deployment Team LFC
$Date: 2003/09/02 07:08:38 $ LFC_STAT(3)
All times are GMT -4. The time now is 01:18 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy