i really stuck in programming a tool with bidirectional process communication (popen(cmd, "rw") ... something like that ;-)).
Here is the code:
intersting are only the last 10 lines. I try to write to factor, then read, than write again (...) until 0 is given. This wont work, because read(p_stdout[READ], ....) always blocks the programm, waiting for some better waeather are someso. I tried to use fsync() between write and read, but it didnt help. Only fclose() solve the problem, but if p_stdin[WRITE] is closed, i can only iterate the loop one times.
Is there any possibility that a Stream Read and Write queues will interchange messages of any kind. If so what are the different possiblites and under what circumstances ?
Thanks in advance. (4 Replies)
I am programming some data loader of oracle with unix c, when I find new data file, then read it to database and delete it. but one issue, if the file is in process of creating, not been closed yet. I will read zero or part of data content, this will cause problem. I want to know whether some unix... (2 Replies)
Hi Everyone,
Good day.
Scenario:
2 unix servers -- A (SunOS) and B (AIX)
I have an ftp script to sftp 30 files from A to B which happen almost instantaneously i.e 30 sftp's happen at the same time.
Some of these sftp's fail with the following error:
ssh_exchange_identification: Connection... (1 Reply)
Can you help me ?
I want to write a program ,which can open a input file (input.txt) and run as child process ,then write to output file (output.txt).......
char inFile="input.txt";
char outFile="output.txt";
int main(int argc, char **argv)
{
pid_t pid=1;
int no=0; // no. of... (5 Replies)
Hi,
I have file which contains information written in blocks (every block is different). Is it possible to read every block one by one to another file (one block per file).
The input is something like this
<block1>
<empty line>
<block2>
<empty line>
...
...
...
<block25>
<empty... (0 Replies)
Hi
I used this command:
mplayer http://host/axis-cgi/mjpg/video.cgi -user root -passwd root \
-cache 1024 -fps 25.0 -nosound -vc ffh264 \
-demuxer 3 -dumpstream -dumpfile output.avi It's ok but...
Video Playing is very fast! Why? Is it a synch problem?
What parameter I have to use for... (1 Reply)
I'm Unix. I'm looking at "df" on Unix now and below is an example. It's lists the filesystems out in 512-blocks, I need this in 4k blocks. Is there a way to do this in Unix or do I manually convert and how?
So for container 1 there is 7,340,032 in size in 512-blocks. What would the 4k block be... (2 Replies)
Hello,
I have a file like this:
FILE.TXT:
(define argc :: int)
(assert ( > argc 1))
(assert ( = argc 1))
<check>
#
(define c :: float)
(assert ( > c 0))
(assert ( = c 0))
<check>
#
now, i want to separate each block('#' is the delimeter), make them separate files, and then send them as... (5 Replies)
I have a script that takes 2 parameters (say) as mandatory
script1.sh a b
The 3rd parameter can be filename which it should process or it can come through a pipeline stream
The script should work both ways:
script1.sh a b filec
or cat filec | script1.sh a b
How to put logic in the... (1 Reply)
Hello,
Searched for a while and found some "line-to-column" script. My case is similar but with multiple fields each row:
S02 Length Per
S02 7043 3.864
S02 54477 29.89
S02 104841 57.52
S03 Length Per
S03 1150 0.835
S03 1321 0.96
S03 ... (9 Replies)
Discussion started by: yifangt
9 Replies
LEARN ABOUT SUNOS
shmctl
shmctl(2) System Calls shmctl(2)NAME
shmctl - shared memory control operations
SYNOPSIS
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/shm.h>
int shmctl(int shmid, int cmd, struct shmid_ds *buf);
DESCRIPTION
The shmctl() function provides a variety of shared memory control operations as specified by cmd. The permission required for a shared mem-
ory control operation is given as {token}, where token is the type of permission needed. The types of permission are interpreted as fol-
lows:
00400 READ by user
00200 WRITE by user
00040 READ by group
00020 WRITE by group
00004 READ by others
00002 WRITE by others
See the Shared Memory Operation Permissions section of intro(2) for more information.
The following operations require the specified tokens:
IPC_STAT Place the current value of each member of the data structure associated with shmid into the structure pointed to by buf.
The contents of this structure are defined in intro(2). {READ}
IPC_SET Set the value of the following members of the data structure associated with shmid to the corresponding value found in the
structure pointed to by buf:
shm_perm.uid
shm_perm.gid
shm_perm.mode /* access permission bits only */
This command can be executed only by a process that has appropriate privileges or an effective user ID equal to the value
of shm_perm.cuid or shm_perm.uid in the data structure associated with shmid.
IPC_RMID Remove the shared memory identifier specified by shmid from the system. The segment referenced by the identifier will be
destroyed when all processes with the segment attached have either detached the segment or exited. If the segment is not
attached to any process when IPC_RMID is invoked, it will be destroyed immediately. This command can be executed only by a
process that has appropriate privileges or an effective user ID equal to the value of shm_perm.cuid or shm_perm.uid in the
data structure associated with shmid.
SHM_LOCK Lock the shared memory segment specified by shmid in memory. This command can be executed only by a process that has appro-
priate privileges.
SHM_UNLOCK Unlock the shared memory segment specified by shmid. This command can be executed only by a process that has appropriate
privileges.
A shared memory segment must be explicitly removed using IPC_RMID before the system can deallocate it and the resources it uses.
RETURN VALUES
Upon successful completion, 0 is returned. Otherwise, -1 is returned and errno is set to indicate the error.
ERRORS
The shmctl() function will fail if:
EACCES The cmd argument is equal to IPC_STAT and {READ} operation permission is denied to the calling process.
EFAULT The buf argument points to an illegal address.
EINVAL The shmid argument is not a valid shared memory identifier; or the cmd argument is not a valid command or is IPC_SET and
shm_perm.uid or shm_perm.gid is not valid.
ENOMEM The cmd argument is equal to SHM_LOCK and there is not enough memory.
EOVERFLOW The cmd argument is IPC_STAT and uid or gid is too large to be stored in the structure pointed to by buf.
EPERM The cmd argument is equal to IPC_RMID or IPC_SET, the effective user ID of the calling process is not equal to the value of
shm_perm.cuid or shm_perm.uid in the data structure associated with shmid, and {PRIV_IPC_OWNER} is not asserted in the
effective set of the calling process.
The cmd argument is equal to SHM_LOCK or SHM_UNLOCK and {PRIV_PROC_LOCK_MEMORY} is not asserted in the effective set of the
calling process.
ATTRIBUTES
See attributes(5) for descriptions of the following attributes:
+-----------------------------+-----------------------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+-----------------------------+-----------------------------+
|Interface Stability |Standard |
+-----------------------------+-----------------------------+
SEE ALSO ipcs(1), intro(2), shmget(2), shmop(2), attributes(5), privileges(5), standards(5)SunOS 5.10 1 Feb 2003 shmctl(2)