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
RFIO_STAT(3)						      Rfio Library Functions						      RFIO_STAT(3)

NAME
rfio_stat - get information about a file or directory SYNOPSIS
#include <sys/types.h> #include "rfio_api.h" int rfio_stat (const char *path, struct stat *statbuf); int rfio_fstat (int s, struct stat *statbuf); int rfio_lstat (const char *path, struct stat *statbuf); int rfio_mstat (const char *path, struct stat *statbuf); int rfio_mstat_reset (); int rfio_end (); Under Linux, for large files: #define _LARGEFILE64_SOURCE #include <sys/types.h> #include "rfio_api.h" int rfio_stat64 (const char *path, struct stat64 *statbuf); int rfio_fstat64 (int s, struct stat64 *statbuf); int rfio_lstat64 (const char *path, struct stat64 *statbuf); int rfio_mstat64 (const char *path, struct stat64 *statbuf); For large files, under other systems: #include <sys/types.h> #include "rfio_api.h" int rfio_stat64 (const char *path, struct stat64 *statbuf); int rfio_fstat64 (int s, struct stat64 *statbuf); int rfio_lstat64 (const char *path, struct stat64 *statbuf); int rfio_mstat64 (const char *path, struct stat64 *statbuf); DESCRIPTION
rfio_stat gets information about a file or directory. rfio_lstat is identical to rfio_stat except for symbolic links. In this case, the link itself is statted and not followed. rfio_fstat is identical to rfio_stat but works on the file descriptor s returned by rfio_open. rfio_mstat is identical to rfio_stat but keeps the connection open to the server unless there are more than MAXMCON connections already opened. This is useful when issuing a series of stat calls. The last rfio_mstat call should be followed by a call to rfio_end. rfio_mstat_reset is to be used when your program is forking. In such a case the permanent connections opened with rfio_mstat become shared between the parent and the child. Use rfio_mstat_reset to perform the necessary reset and close of the socket file descriptor in the parent or the child in order to be sure that only of them will receice an answer from the RFIO daemon. See NOTES section below. path specifies the logical pathname relative to the current directory or the full pathname. statbuf is a pointer to a stat structure, receiving result of your query. The 64 bits functions must be used for large files. They have the same syntax as the normal stat functions except that they use a stat64 structure. 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. NOTES
Multiple connections using rfio_mstat are thread-safe but not process-wide, therefore a forked child can share file descriptors opened with rfio_mstat by its parent. Use rfio_mstat_reset in such case. Multiple connections behaviour is undefined if you work in a multi-threaded environment and with threads not created using the LCG's Cthread interface. ERRORS
ENOENT The named file/directory does not exist or is a null pathname. EBADF s is not a valid file descriptor. 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. SEE ALSO
Castor_limits(4), rfio_chmod(3), rfio_chown(3), Cthread(3) AUTHOR
LCG Grid Deployment Team LCG
$Date: 2005/03/31 13:13:03 $ RFIO_STAT(3)
All times are GMT -4. The time now is 11:44 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy