10-18-2009
Please help with the following fork code..with complete explanation
I have the following piece of codes. Please explain it to me in great detail how are these codes working.
1. #include <stdio.h>
int main(){
int x;
x=0;
while (x<2 && fork()){
if (!fork()) execlp("echo","x++","x",0);
x++;
system("echo x+x");
}
}
2.
#include <stdio.h>
int i;
int main() {
for(i=0;i<2;i++){
if(fork())
fork();
}
printf ("%d\n", i);
system(("echo i++");
}
The attempts at a solution (include all code and scripts):[/B]
Output of 1:
x
x+x
x+x
x
Output of 2:
2
i++
2
i++
2
i++
2
i++
2
i++
2
i++
2
i++
2
2
i++
i++
Politechnico di Torino
Last edited by prakashabii; 10-18-2009 at 06:51 PM..
10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
Hi I am new to shell script programming...
want to know the process of the following:
if
then
echo "$0: missing argument for option(s) :$MISSINGOPTARG"
echo "usage" $USAGE"
exit 1
fi (1 Reply)
Discussion started by: chandhar
1 Replies
2. Shell Programming and Scripting
Could someone give me a quick simple explanation for the AWK command.
And also help me to explain the code i have made. I have made some general comments about it myself. I was wondering if people could help me with the rest:
awk -F'' 'END {
fmt = "%-20s\t%s\t%s\n" ... (0 Replies)
Discussion started by: amatuer_lee_3
0 Replies
3. Shell Programming and Scripting
Hi
I have a line/command which greps certain pattern () from the file and 22 lines AFTER that:
nawk '/\/{c=22}c&&c--' input_file
Can somebody explain the coding in this command (what " c&&c-- " does)? and how to modify this command to output 22 lines BEFORE this pattern () Thanks a lot ... (3 Replies)
Discussion started by: aoussenko
3 Replies
4. Programming
Ok, so I have done the 'mathematical part' just I am not sure where to put them in and how to get them to return answers.
public class Main {
public static void main(String args) {
}
//Part A.
//1&2- Computes the sum andproduct of all of the elements of the array a.
... (5 Replies)
Discussion started by: HardyV2
5 Replies
5. Shell Programming and Scripting
Can you please explain the following code plz?
my_cd=' '
while getopts :e: OPTION;
do
case "$OPTION" in
e) my_cd ="$OPTARG";;
esac
done
if ; then
echo " >>> ERROR - I am wrong"
echo " >>> ERROR - Hello"
exit 99
fi
What I don't understand is what is OPTION or... (3 Replies)
Discussion started by: RubinPat
3 Replies
6. UNIX for Dummies Questions & Answers
Hi all,
I need your help in understanding the meaning and syntax of the below nawk line.
Here is an extract of a script which I use daily and works well. The script extracts the hostnames and messages within a syslog file. I would also like to extract the message time in the 3rd column by... (2 Replies)
Discussion started by: wthomas
2 Replies
7. UNIX for Dummies Questions & Answers
I need someone to tell me how exactly works the following code αfter /etc/passwd :eek::
cat /etc/passwd|grep "^:"|sed '1,$s/^\(*\):*:\(*\):.*$/ \1 \2 /'|sort -nrk3 -t:I want a good explanation to understand the code please (4 Replies)
Discussion started by: kotsos13
4 Replies
8. Homework & Coursework Questions
1. I've been asked to provide a detailed description on how Minix's source code is organised. This may sound slightly simple, but what exactly am I to refer to when explaining? Any documents that would provide assistance to understand whats being asked? Thanks
2. Not applicable:
3.... (1 Reply)
Discussion started by: Menace12
1 Replies
9. Shell Programming and Scripting
Hi,
I am breaking my head to understand the below line of code in perl:
next if $pid = fork; # Parent goes to next server.
die "fork failed: $!" unless defined $pid;
Can anyone please explain me in detail as I am a slow learner?
Thanks,
Ali. (2 Replies)
Discussion started by: liyakathali
2 Replies
10. Shell Programming and Scripting
Hi. Can somebody please explain the following lines of KSH code for me? The code checks all sub directories in a specific location which are numbered (E.g. test_01, test_02 ... etc.), then finds the one with highest number and extracts that number from the dir name into the variable num. I'd just... (9 Replies)
Discussion started by: user052009
9 Replies
VKBD(4) BSD Kernel Interfaces Manual VKBD(4)
NAME
vkbd -- the virtual AT keyboard interface
SYNOPSIS
device vkbd
DESCRIPTION
The vkbd interface is a software loopback mechanism that can be loosely described as the virtual AT keyboard analog of the pty(4), that is,
vkbd does for virtual AT keyboards what the pty(4) driver does for terminals.
The vkbd driver, like the pty(4) driver, provides two interfaces: a keyboard interface like the usual facility it is simulating (a virtual AT
keyboard in the case of vkbd, or a terminal for pty(4)), and a character-special device ``control'' interface.
The virtual AT keyboards are named vkbd0, vkbd1, etc., one for each control device that has been opened.
The vkbd interface permits opens on the special control device /dev/vkbdctl. When this device is opened, vkbd will return a handle for the
lowest unused vkbdctl device (use devname(3) to determine which).
Each virtual AT keyboard supports the usual keyboard interface ioctl(2)s, and thus can be used with kbdcontrol(1) like any other keyboard.
The control device supports exactly the same ioctl(2)s as the virtual AT keyboard device. Writing AT scan codes to the control device gener-
ates an input on the virtual AT keyboard, as if the (non-existent) hardware had just received it.
The virtual AT keyboard control device, normally /dev/vkbdctl<N>, is exclusive-open (it cannot be opened if it is already open) and is
restricted to the super-user. A read(2) call will return the virtual AT keyboard status structure (defined in <dev/vkbd/vkbd_var.h>) if one
is available; if not, it will either block until one is or return EWOULDBLOCK, depending on whether non-blocking I/O has been enabled.
A write(2) call passes AT scan codes to be ``received'' from the virtual AT keyboard. Each AT scan code must be passed as unsigned int.
Although AT scan codes must be passes as unsigned ints, the size of the buffer passed to write(2) still should be in bytes, i.e.,
static unsigned int codes[] =
{
/* Make Break */
0x1e, 0x9e
};
int
main(void)
{
int fd, len;
fd = open("/dev/vkbdctl0", O_RDWR);
if (fd < 0)
err(1, "open");
/* Note sizeof(codes) - not 2! */
len = write(fd, codes, sizeof(codes));
if (len < 0)
err(1, "write");
close(fd);
return (0);
}
Write will block if there is not enough space in the input queue.
The control device also supports select(2) for read and write.
On the last close of the control device, the virtual AT keyboard is removed. All queued scan codes are thrown away.
SEE ALSO
kbdcontrol(1), atkbdc(4), psm(4), syscons(4)
CAVEATS
The vkbd interface is a software loopback mechanism, and, thus ddb(4) will not work with it. Current implementation of the syscons(4) driver
can accept input from only one keyboard, even if it is virtual. Thus it is not possible to have both wired and virtual keyboard to be active
at the same time. It is, however, in principal possible to obtain AT scan codes from the different sources and write them into the same vir-
tual keyboard. The virtual keyboard state synchronization is the user's responsibility.
HISTORY
The vkbd module was implemented in FreeBSD 6.0.
AUTHORS
Maksim Yevmenkin <m_evmenkin@yahoo.com>
BSD
August 12, 2004 BSD