a for loop that doesn't make sense


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers a for loop that doesn't make sense
# 1  
Old 09-27-2008
a for loop that doesn't make sense

I've been referring bash info for processes and came across a structure for a process which is defined like
typedef struct process
{
struct process *next;
char ** argv
.
.
.
}process;

What I don't understand is that in the program there's a for loop which goes like this
job *j;//pointer to a structure that holds data about the jobs running
process *p;//pointer to a structure that holds process information
for(p=j->first_process;p;p=p->next) {...}
I don't understand how the p highlighted in red can be used as a condition in a for loop. What purpose does it serve? How does the for loop evaluate p as a terminating condition for the loop?
# 2  
Old 09-27-2008
NULL is defined to beSmilie<datatype> *)0 - this means regardless of the underlying architecture
if p == 0 and p is a pointer it is guaranteed to be unassigned. Therefore
Code:
if (p)
if(p==NULL)

evaluate the same. NULL is fairly new. Old C code uses code like (char**)0 all the time. Example - this is in the strtoul definition on the manpage for systems that have C89 compilers.
# 3  
Old 09-27-2008
Thanks Smilie I had a feeling it could be a null thingy....but didn't expect C to actually support that Smilie
 
Login or Register to Ask a Question

Previous Thread | Next Thread

8 More Discussions You Might Find Interesting

1. Red Hat

Does it make sense to reduce the total shared memory

We have several dozen Redhat 5, 6 and 7 servers that are running Oracle databases. On some databases we are using automatic memory management, which uses shared memory. On other databases we are use manual memory management, which does not use shared memory. When I see that a server is swapping... (2 Replies)
Discussion started by: gandolf989
2 Replies

2. Shell Programming and Scripting

Do loop doesn't iterate

I'm trying to send the file list as parameter to another job and execute it. But the loop doesn't work, the inner job is running only once and not twice as expected for filelist in $(ls -rt *.txt | tail -2) do echo $filelist export filelist cmd="$Program -config $configfile -autoexec... (11 Replies)
Discussion started by: asandy1234
11 Replies

3. Cybersecurity

Root login in Linux - does it make sense?

I stumbled upon this thread and one aspect of it got me thinking. As i am building a small Linux network right now for a friend i would like to hear your opinion on this. I'd like to respectfully disagree. I think the Linux habit of disabling root login per default is wrong (not entirely... (6 Replies)
Discussion started by: bakunin
6 Replies

4. UNIX for Advanced & Expert Users

sar -d output... does not make sense

Can someone explain the correlation between how sar names the disk drives and how the rest of the OS names the disk drives? sar lists my disk drives as sd0, sd1, sd2, etc..... while format lists my disk drives as c1t0d0, c1t1d0, c1t2d0,etc... And also why sar shows 8 disks but format... (2 Replies)
Discussion started by: s ladd
2 Replies

5. Shell Programming and Scripting

GNU make doesn't pick up changes

It's been a while since I had to write a Makefile, but I've managed to clobber this together: SRC=module1.c module2.c OBJS=$(SRC:%.c=%.o) HDR=include1.h include2.h CC=gcc CFLAGS=-Wall -ggdb -D_XOPEN_SOURCE -I. -ansi all: program program: $(OBJS) $(CC) $(CFLAGS) -o $@ $(OBJS) ... (3 Replies)
Discussion started by: pludi
3 Replies

6. UNIX for Dummies Questions & Answers

trying to make sense of rsync output...

I'm running the following rsync command to sync a directory between the 2 servers: rsync -az --delete --stats /some_dir/ server_name:/some_dir I'm getting the following output: Number of files: 655174 Number of files transferred: 14221 Total file size: 1138531979331 bytes Total... (0 Replies)
Discussion started by: GKnight
0 Replies

7. High Performance Computing

Rocks clusters make sense for educational environments

08-18-2008 11:00 AM Cluster computing has played a pivotal role in the way research is conducted in educational environments. Because the amount of available money and hardware varies between university researchers, often it's necessary to find a clustering solution that can work well on a small... (0 Replies)
Discussion started by: Linux Bot
0 Replies

8. UNIX for Dummies Questions & Answers

my make doesn't work

hi I wrote the following makefile, I have just one problem, when i type make clean I get the message make 'clean' is up to date and any obj file is removed from my folder, what's wrong? Thank you CC = cc all: es.o elaboration.o $(CC) -o es es.o elaboration.o elaboration.o:... (0 Replies)
Discussion started by: Puntino
0 Replies
Login or Register to Ask a Question