12-11-2005
Please make sure that you have read our
rules. And note:
(6) Do not post classroom or homework problems.
Once in a while we bend the rules a bit, so I'll make one suggestion before closing the thread. Your server children processes need to have a Unix domain socket to talk with the master server. (Use AF-UNIX instead of AF-INET.) Then read the man pages for the system calls sendmsg() and recvmsg(). Where they talk about sending "access rights" is what you want. Bear in mind that you will be creating a new fd that references the same open file as the old fd. So the sending process may send, say, fd 9 and the receiving process might establish, say, fd 21. This works for and fd, including any socket. And there is no other standard way to transfer an fd between processes.
10 More Discussions You Might Find Interesting
1. Programming
Hi,
I have written a daemon process, to perform certain operations in the background.
For this I have to close, the open file descriptors,
Does anybody know how to find out the number of open file descriptors ?
Thanks in Advance,
Sheetal (2 Replies)
Discussion started by: s_chordia
2 Replies
2. UNIX for Advanced & Expert Users
Hello all,
A few questions on file descriptors ...
scenario : Sun Ultra 30 with Sun OS 5.5.1 , E250 with Solaris 2.6
In one of my servers, the file descriptor status from the soft limit and hard limits are 64 and 1024 respectively for root user.
Is the soft limit (64) represents the... (3 Replies)
Discussion started by: shibz
3 Replies
3. UNIX for Dummies Questions & Answers
i m trying to learn processes in unix and i've been reading this but i don't quite get it. its regarding file descriptors. : each is a part of file pointers, they point to another area. indexes into an Operating system maintained table called "file descriptor table". one table per process. may... (3 Replies)
Discussion started by: a25khan
3 Replies
4. Shell Programming and Scripting
Greetings,
I have a troubling problem with a Korn Shell concept that I know works in Solaris.
Essentially I am assigning file descriptors to a coprocess. Also, it should be noted that I am not using the public domain ksh but, rather AT&T ksh93.
Here is a test scenario:
$ sqlplus -s... (5 Replies)
Discussion started by: tmarikle
5 Replies
5. Shell Programming and Scripting
I have a script that creates a KSH co-process for Oracle sqlplus and I am presently interacting with it via print -p and read -p.
I also need to interact with another Oracle database what isn't permitted to have any direct connection to the first. Presently, I simply disconnect from the first... (10 Replies)
Discussion started by: tmarikle
10 Replies
6. UNIX for Advanced & Expert Users
Hi All,
This thread is going to be a discussion basically bringing out more information from the experts on cron jobs and the associated file handles.
So, here is the question.
There is definitely a constant ' n ' as the maximum number of file handles alloted to a process ' p '.
Will... (7 Replies)
Discussion started by: matrixmadhan
7 Replies
7. UNIX for Dummies Questions & Answers
I have written this code, and according to my research it SHOULD be going down the list until it is finished, but I am getting blank feedback. Nothing is being output as far as I can tell.
#!/bin/sh
while echo Enter to start traversing
read enter
do
read list <&3
echo $list
done
any... (2 Replies)
Discussion started by: MaestroRage
2 Replies
8. HP-UX
Hi,
I speak and write english more or less, so I hope my asking be clear.
:)
In the company I am working, they are using control-m software to lunch
shell scripts.
So i put this command in all shell scripts:
export LOGFILE_tmp=$PRODUC_DATA/tmp/${SCRIPT}_${PAIS}_`date... (0 Replies)
Discussion started by: anamcara
0 Replies
9. UNIX for Dummies Questions & Answers
What is the difference between a file descriptor and a semaphore?
My basic understanding is:
- a file descriptor is a small positive integer that the system uses instead of the file name to identify an open file or socket.
- a semaphore is a variable with a value that indicates the... (1 Reply)
Discussion started by: Mr_Webster
1 Replies
10. Shell Programming and Scripting
Hi, I'm playing with KSH
I entered following command in terminal
{ echo "stdout" >&1; echo "stderr" >&2; } > out
And I get only stoud in a new file out.
My question is: Where did my stderr vanish ? (5 Replies)
Discussion started by: solaris_user
5 Replies
UNIX(7) Linux Programmer's Manual UNIX(7)
NAME
unix, AF_UNIX, AF_LOCAL - Sockets for local interprocess communication
SYNOPSIS
#include <sys/socket.h>
#include <sys/un.h>
unix_socket = socket(AF_UNIX, type, 0);
error = socketpair(AF_UNIX, type, 0, int *sv);
DESCRIPTION
The AF_UNIX (also known as AF_LOCAL) socket family is used to communicate between processes on the same machine efficiently. Tradition-
ally, Unix sockets can be either unnamed, or bound to a file system pathname (marked as being of type socket). Linux also supports an
abstract namespace which is independent of the file system.
Valid types are: SOCK_STREAM, for a stream-oriented socket and SOCK_DGRAM, for a datagram-oriented socket that preserves message boundaries
(as on most Unix implementations, Unix domain datagram sockets are always reliable and don't reorder datagrams); and (since Linux 2.6.4)
SOCK_SEQPACKET, for a connection-oriented socket that preserves message boundaries and delivers messages in the order that they were sent.
Unix sockets support passing file descriptors or process credentials to other processes using ancillary data.
Address Format
A Unix domain socket address is represented in the following structure:
#define UNIX_PATH_MAX 108
struct sockaddr_un {
sa_family_t sun_family; /* AF_UNIX */
char sun_path[UNIX_PATH_MAX]; /* pathname */
};
sun_family always contains AF_UNIX.
Three types of address are distinguished in this structure:
* pathname: a Unix domain socket can be bound to a null-terminated file system pathname using bind(2). When the address of the socket is
returned by getsockname(2), getpeername(2), and accept(2), its length is sizeof(sa_family_t) + strlen(sun_path) + 1, and sun_path con-
tains the null-terminated pathname.
* unnamed: A stream socket that has not been bound to a pathname using bind(2) has no name. Likewise, the two sockets created by socket-
pair(2) are unnamed. When the address of an unnamed socket is returned by getsockname(2), getpeername(2), and accept(2), its length is
sizeof(sa_family_t), and sun_path should not be inspected.
* abstract: an abstract socket address is distinguished by the fact that sun_path[0] is a null byte ('