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
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
edited and removed (0 Replies)
Discussion started by: mdpalow
0 Replies
3. Shell Programming and Scripting
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
#!/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
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
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
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
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
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
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
LEARN ABOUT DEBIAN
lfc_lstat
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)