problem in msgctl() system call


 
Thread Tools Search this Thread
Operating Systems AIX problem in msgctl() system call
# 1  
Old 04-30-2008
problem in msgctl() system call

Hi,

i am using IBM P6 server and OS is AIX 5.3. my code is written in c/pro C.

i am facing problem in msgctl() system call.The variables msg_qbytes and msg_cbytes are used to store total no of bytes and current no of bytes in a QUEUE,but it is showing me as ZERO though data are there in QUEUE.

since the same code is working fine in IBM P5 MACHINE, i am quiet surprised.
please help.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

system call

Trying to figure out a load issue with a webserver. I have traced a php script and noticed the following connect(4, {sa_family=AF_INET, sin_port=htons(3306), sin_addr=inet_addr("XX.XX.XX.XX")}, 16) = -1 EINPROGRESS (Operation now in progress) <0.000035> poll(, 1, 2000) = 1 () <0.000120>... (5 Replies)
Discussion started by: rajan007
5 Replies

2. AIX

Audit problem : A system call received a parameter that is not valid.

while i try to start the audit i have the below error message . audit>audit start ** auditing enabled already A system call received a parameter that is not valid. please advice (6 Replies)
Discussion started by: thecobra151
6 Replies

3. Programming

Problem with execution of fork system call if i use \n

hi all, i tried the following source codes: fork1.c: main() { printf("demo of fork\n"); fork(); printf("hello"); } output: demo of fork hello hello fork2.c: main() (3 Replies)
Discussion started by: pnirmala
3 Replies

4. Programming

system call

I have a cgi script which is called after certain time interval, which has this: system ("ls -l /tmp/cgic* | grep -v \"cgicsave.env\" | awk '{print $5}'"); During the execution of this script,the output is 0 sometimes. But due to this the system call is not working at all and doesnt o/p... (2 Replies)
Discussion started by: xs2punit
2 Replies

5. UNIX for Advanced & Expert Users

Problem in read() system call in Xenomai-2.4

Dear All, I am having problem with read() system call in Blocking Mode. In my driver interrupt intimation done through RT FIFO. so i have created the RT FIFO and open the FIFO using open() system call with O_RDONLY flag and i am waiting for interrupt using read() blocking call.initally... (1 Reply)
Discussion started by: rajamohan
1 Replies

6. Programming

Problem with socket binding - "system" call

Hi, I am having an issue with using sockets. I have a program which binds to a socket and listen on it. Later I spawn a thread to handle some function. In the new thread created I need to call a shell script which executes the specified function. Here I am using a system command to call the... (5 Replies)
Discussion started by: Janardhanbr
5 Replies

7. Linux

system call problem

hi, where can I find the detail information about the syscall in binary instructions of linux/mips. for example, in linux/mips: li v0, 4140 syscall it's a syacall of "lseek" , but how can I find that which registers will be used in this syscall , and the meaning of the arguments in the... (2 Replies)
Discussion started by: zerocool_08
2 Replies

8. Programming

Problem with signal handler and interrupted system call

Hi, I have a daq program that runs in an infinite loop until it receives SIGINT. A handler catches the signal and sets a flag to stop the while loop. After the loop some things have to be cleaned up. The problem is that I want my main while loop to wait until the next full second begins, to... (2 Replies)
Discussion started by: soeckel
2 Replies

9. UNIX for Advanced & Expert Users

how to differentiate system call from library call

Hi, Ho do I differentiate system call from library call? for example if I am using chmod , how do I find out if it is a system call or library call? Thanks Muru (2 Replies)
Discussion started by: muru
2 Replies

10. Programming

Problem in system call

Dear Friends, I write a c program to list the directories recursively. For this I write a function called my_readdir to read the content of directory. For this I use read system call it returns -1, then I use readdir system call it gives comment terminated error or segmentation... (1 Reply)
Discussion started by: spmlingam
1 Replies
Login or Register to Ask a Question
MSGSND(2)						      BSD System Calls Manual							 MSGSND(2)

NAME
msgsnd -- send a message to a message queue LIBRARY
Standard C Library (libc, -lc) SYNOPSIS
#include <sys/types.h> #include <sys/ipc.h> #include <sys/msg.h> int msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); DESCRIPTION
The msgsnd() function sends a message to the message queue specified in msqid. The msgp argument points to a structure containing the mes- sage. This structure should consist of the following members: long mtype; /* message type */ char mtext[1]; /* body of message */ mtype is an integer greater than 0 that can be used for selecting messages (see msgrcv(2)), mtext is an array of msgsz bytes. The argument msgsz can range from 0 to a system-imposed maximum, MSGMAX. If the number of bytes already on the message queue plus msgsz is bigger than the maximum number of bytes on the message queue (msg_qbytes, see msgctl(2)), or the number of messages on all queues system-wide is already equal to the system limit, msgflg determines the action of msgsnd(). If msgflg has IPC_NOWAIT mask set in it, the call will return immediately. If msgflg does not have IPC_NOWAIT set in it, the call will block until: o The condition which caused the call to block does no longer exist. The message will be sent. o The message queue is removed, in which case -1 will be returned, and errno is set to EINVAL. o The caller catches a signal. The call returns with errno set to EINTR. After a successful call, the data structure associated with the message queue is updated in the following way: o msg_cbytes is incremented by the size of the message. o msg_qnum is incremented by 1. o msg_lspid is set to the pid of the calling process. o msg_stime is set to the current time. RETURN VALUES
The msgsnd() function returns the value 0 if successful; otherwise the value -1 is returned and the global variable errno is set to indicate the error. ERRORS
The msgsnd() function will fail if: [EINVAL] The msqid argument is not a valid message queue identifier The message queue was removed while msgsnd() was waiting for a resource to become available in order to deliver the mes- sage. The msgsz argument is greater than msg_qbytes. The mtype argument is not greater than 0. [EACCES] The calling process does not have write access to the message queue. [EAGAIN] There was no space for this message either on the queue, or in the whole system, and IPC_NOWAIT was set in msgflg. [EFAULT] The msgp argument points to an invalid address. [EINTR] The system call was interrupted by the delivery of a signal. HISTORY
Message queues appeared in the first release of AT&T Unix System V. BUGS
NetBSD and FreeBSD do not define the EIDRM error value, which should be used in the case of a removed message queue. BSD
July 9, 2009 BSD