my $log = IO::File->new(">$log_file_name");
$log->print("date()."--\n\n\n");
sub process {
my ($sub_dir, $file, $config, $log) = @_;
$log->print("-- Reading $file file\n");
}
Code:
my $pm = new Parallel::ForkManager($tc+1);
$pm->run_on_finish( sub { my ($pid, $exit_code, $ident) = @_; $tmpFiles[$ident] = undef; } );
foreach my $i (0..$#tmp) {
# Forks and returns the pid for the child:
my $pid = $pm->start($i) and next;
$SIG{INT} = 'DEFAULT';
my $filename = $tmp[$i]->filename();
my $file = IO::File->new("<$filename") or die "Can't open $filename\n";
while((my $line) = $file->getline()) {
last unless defined($line);
chomp $line;
my ($dir, $file) = split(/\t/, $line);
# my $process = shift; is created above
# Calling this from another file
$process->($dir, $file, $config, $log);
}
$pm->finish; # Terminates the child process
}
Here 5 process is created and subroutine is called from another file which opens a log file write. <br>
$process->($dir, $file, $config, $log);
The problem is while writing to the file some of the data is missed out because it is not synchronized.
How can I synchronize all the forked process to write to same log file or create a different log file for each.
or How can I create a threading process as the replacement for forking process
When I compile this C programme I get different outputs each time I run it
Please explain to me whats happening in the code if you can give me a detailed explanation. Because I am stuck with this.
#include <stdio.h>
main(){
int i = 0;
printf("I am the... (1 Reply)
When I compile this C programme I get different outputs each time I run it
Please explain to me whats happening in the code if you can give me a detailed explanation with the schedular functionality it will help a lot. Because I am stuck with this.
#include <stdio.h>
main(){... (3 Replies)
Hi
I'm currently working with C on UNIX (HPUX) and need to be able to fork a seperate Java process from within a running C process.
I can run the following code from the command line via a script but am having difficulty getting it to work from within the code.
I am trying to use execl. Is... (4 Replies)
#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
int main()
{
pid_t pID;
int i;
for (i = 0; i < 3; i++)
{
pID = fork ();
if (pID == 0)
{
printf ("Value of i --> %d... (2 Replies)
Is it safe to call fork+exec in a multithreaded application.
Because In my multithreaded application, I need to execute another program in each thread.
I am using solaris 10.
Any suggestions pls. (2 Replies)
Hello,
I am new to this site, so sorry ahead of time if this is not the right place for this question.......anywhooooo
I am having troubles with forking new processes in wish. Take the following code example:
****************************
package require Tclx
puts "TCL VER: "
proc... (3 Replies)
i wanna ask about forking in unix...how can you do forking...??i don't understand and i have an assignment about it...the output should look like this...
Question 1 : what's your name ?
Answer : if no answer, write to file...----Out of time-----because for each question it is given a... (3 Replies)
Keep in mind that I haven't done Perl scripting for a LONG time, so I'm quite rusty.
This is what I would like to do:
- using fork, create 3 or 4 processes to read 3 or 4 different text documents containing server names or IP addresses
- in each of those processes, Perl will ping each of those... (7 Replies)
My question is, how do you fork only the parent processes in unix? For example how would I use the fork function to fork the parent process more than once and leave the children processes alone. This way I do not have children of children. The way I have it set up now it the parent process forks 3... (7 Replies)
I have an input file with contents like:
5785690|68690|898809
7960789|89709|789789
7669900|87865|659708
7869098|65769|347658
so on..
I need to pass this file to 10 parallely running processes (forking)so that each line is processed by a process and no line is processed twice and write the... (1 Reply)
Discussion started by: rkrish
1 Replies
LEARN ABOUT SUSE
mlm
FBB::mlm(3bobcat) OFoldStream manipulator FBB::mlm(3bobcat)NAME
FBB::mlm - Manipulator modifying left margins of OFoldStream objects
SYNOPSIS
#include <bobcat/ofoldstream> or
#include <bobcat/ofoldstreambuf>
Linking option: -lbobcat
DESCRIPTION
The mlm class implements a manipulator that can be inserted into OFoldStream objects to modify the stream's left margin by a requested
amount. The request cannot result in a negative left margin value. If a negative left margin would be the arithmetic result of the request
then left margin 0 will silently be used.
Depending on the tab-setting of the OFoldStream the inserted value represents the number of blank space characters or the number of
tab-characters that will be added to the left margin.
The request will be processed at the next newline character or std::flush or std::endl manipulator that is inserted into the stream. If a
line is still empty once an mlm object and a flush manipulator are inserted into the stream then the new left margin will be effective at
the next word inserted into that line (cf., the example section below)
A bad_cast exception is thrown when the manipulator is inserted into an ostream that is not using a OFoldStreambuf buffer.
NAMESPACE
FBB
All constructors, members, operators and manipulators, mentioned in this man-page, are defined in the namespace FBB.
INHERITS FROM -
CONSTRUCTOR
o mlm(int addValue):
The standard copy constructor is available.
MEMBER FUNCTIONS
There are no public or protected member functions in this class.
EXAMPLE
#include <iostream>
#include <bobcat/ofoldstream>
using namespace std;
using namespace FBB;
int main()
{
OFoldStream out(cout, 0, 80);
out << "hello world (left margin is 0)" << mlm(4) << "
"
"this uses a 4 character wide left margin
" <<
mlm(-10) << flush <<
"left margin -6 changed to 0, active on this line
";
return 0;
}
FILES
bobcat/mlm - defines the class interface
SEE ALSO bobcat(7), manipulators(3bobcat), lm(3bobcat), ofoldstream(3bobcat)BUGS
None Reported.
DISTRIBUTION FILES
o bobcat_3.01.00-x.dsc: detached signature;
o bobcat_3.01.00-x.tar.gz: source archive;
o bobcat_3.01.00-x_i386.changes: change log;
o libbobcat1_3.01.00-x_*.deb: debian package holding the libraries;
o libbobcat1-dev_3.01.00-x_*.deb: debian package holding the libraries, headers and manual pages;
o http://sourceforge.net/projects/bobcat: public archive location;
BOBCAT
Bobcat is an acronym of `Brokken's Own Base Classes And Templates'.
COPYRIGHT
This is free software, distributed under the terms of the GNU General Public License (GPL).
AUTHOR
Frank B. Brokken (f.b.brokken@rug.nl).
libbobcat1-dev_3.01.00-x.tar.gz 2005-2012 FBB::mlm(3bobcat)