Shamrock, sorry about not providing proper details previously.
Program A does have main() fn separately. Program A and B are completely two different programs, just that Program B is called through execl() in Program A.
Following are additional details on Program A.
PROGRAM A
Code:
int
main(int argc, char *argv[])
{
// This program accepts several customized options through socket.
// The option/module I am writing is called SearchFiles
// This program does not exit until another option Terminate is called through client socket
// Meaning, SearchFiles option can be called more than once
// SearchFiles does operation nothing to do with pipes. it does a customized path translation.
// The data that it passes to StartPipe() method is only the socket and the path in a char array as below:
sockinetbuf s;
string socket_data;
s >> socket_data;
while(s)
{
s >> socket_data;
if (socket_data == "SearchFiles")
{
char input_to_program_b[1000] = "blah blah blah";
StartPipe(s, input_to_program_b);
}
else if (socket_data == "Terminate")
{
exit(0);
}
}
}
Function StartPipe() is as given in the first post.
Hi,
Program A: uses pipe()
I am able to read the stdout of PROGAM B (stdout got through system() command) into PROGRAM A using:
* child
-> dup2(fd, STDOUT_FILENO);
-> execl("/path/PROGRAM B", "PROGRAM B", NULL);
* parent
-> char line;
-> read(fd, line, 100);
Question:
---------... (1 Reply)
Hi,
Program A: uses pipe()
I am able to read the stdout of PROGAM B (stdout got through system() command) into PROGRAM A using:
* child
-> dup2(fd, STDOUT_FILENO);
-> execl("/path/PROGRAM B", "PROGRAM B", NULL);
* parent
-> char line;
-> read(fd, line, 100);
Question:... (2 Replies)
Hello,
I have a script that monitors files uploaded via ftp. After a successful upload, the file name is written to the pipe.
There is another program that reads this pipe and allows automatically run any program or script ( say test.sh ) to process the newly uploaded file.
cat test.sh... (2 Replies)
Hi,
Program A: uses pipe()
I am able to read the stdout of PROGAM B (stdout got through system() command) into PROGRAM A using:
* child
-> dup2(fd, STDOUT_FILENO);
-> execl("/path/PROGRAM B", "PROGRAM B", NULL);
* parent
-> char line;
-> read(fd, line, 100);
Question:
---------... (3 Replies)
I have the following code which works on AIX 4.3 but fails at times on AIX 5.3
with:
cat: 0652-054 cannot write to output. There is no process to read data written to a pipe.
validator="${validator_exe} ${validator_parms}"
cmd_line="${CAT} ${data_file} | ${validator}... (6 Replies)
Hi Everyone,
The machine I'm working on is an AIX 5.3 LPAR running on a P650. oslevel -r shows 5300-08. I'm trying to take a backup to a SCSI tape drive, which has been working up until this point. I know of nothing that has changed recently to cause this problem. But when I try to take a... (0 Replies)
We use SAP application cluster on AIX. Communication between 2 of its instances is failing randomly with the following error:
java.net.SocketException: There is no process to read data written to a pipe.
The above error causes a cluster restart if an important communication fails.
Can... (0 Replies)
Hi,
Hopefully someone can help.
We have a process that writes a file using Connect Direct to our local Solaris server and then our C++ program will pick up the file and process it. Unfortunately, because of the size of the file, the C++ program is processing the file before it has finished... (7 Replies)
Subject: Debugging a program written in two languages
Platform: Linux (Kubuntu)
I am trying to debug a C application with bindings to some simple functions written in Ada using the GNAT Programming Studio IDE (GPS). The main entry point is in C. The debugger is gdb.
I managed to compile... (0 Replies)
Hello friends! i am writing a code in which i take inputs (numbers) from user and count the total number of positive, negative and zeros entered. I need to clear my standard input buffer before scanf() command. My compiler is completely ignoring the fflush(stdin) command. its not even showing any... (1 Reply)
Discussion started by: Abhishek_kumar
1 Replies
LEARN ABOUT LINUX
__ppc_set_ppr_very_low
__PPC_SET_PPR_MED(3) LinuxProgrammer's Manual __PPC_SET_PPR_MED(3)NAME
__ppc_set_ppr_med, __ppc_set_ppr_very_low, __ppc_set_ppr_low, __ppc_set_ppr_med_low, __ppc_set_ppr_med_high - Set the Program Priority Reg-
ister
SYNOPSIS
#include <sys/platform/ppc.h>
void __ppc_set_ppr_med(void);
void __ppc_set_ppr_very_low(void);
void __ppc_set_ppr_low(void);
void __ppc_set_ppr_med_low(void);
void __ppc_set_ppr_med_high(void);
DESCRIPTION
These functions provide access to the Program Priority Register (PPR) on the Power architecture.
The PPR is a 64-bit register that controls the program's priority. By adjusting the PPR value the programmer may improve system throughput
by causing system resources to be used more efficiently, especially in contention situations. The available unprivileged states are cov-
ered by the following functions:
* __ppc_set_ppr_med() sets the Program Priority Register value to medium (default).
* __ppc_set_ppr_very_low() sets the Program Priority Register value to very low.
* __ppc_set_ppr_low() sets the Program Priority Register value to low.
* __ppc_set_ppr_med_low() sets the Program Priority Register value to medium low.
The privileged state medium high may also be set during certain time intervals by problem-state (unprivileged) programs, with the following
function:
* __ppc_set_ppr_med_high() sets the Program Priority to medium high.
If the program priority is medium high when the time interval expires or if an attempt is made to set the priority to medium high when it
is not allowed, the priority is set to medium.
VERSIONS
The functions __ppc_set_ppr_med(), __ppc_set_ppr_low() and __ppc_set_ppr_med_low() are provided by glibc since version 2.18. The functions
__ppc_set_ppr_very_low() and __ppc_set_ppr_med_high() first appeared in glibc in version 2.23.
ATTRIBUTES
For an explanation of the terms used in this section, see attributes(7).
+---------------------------+---------------+---------+
|Interface | Attribute | Value |
+---------------------------+---------------+---------+
|__ppc_set_ppr_med(), | Thread safety | MT-Safe |
|__ppc_set_ppr_very_low(), | | |
|__ppc_set_ppr_low(), | | |
|__ppc_set_ppr_med_low(), | | |
|__ppc_set_ppr_med_high() | | |
+---------------------------+---------------+---------+
CONFORMING TO
These functions are nonstandard GNU extensions.
NOTES
The functions __ppc_set_ppr_very_low() and __ppc_set_ppr_med_high() will be defined by <sys/platform/ppc.h> if _ARCH_PWR8 is defined.
Availability of these functions can be tested using #ifdef _ARCH_PWR8.
SEE ALSO __ppc_yield(3)
Power ISA, Book II - Section 3.1 (Program Priority Registers)
GNU C Library 2017-09-15 __PPC_SET_PPR_MED(3)