dup()


 
Thread Tools Search this Thread
Top Forums Programming dup()
# 1  
Old 11-17-2008
dup()

when i want to replace standard output with output file

int out;

out = open("out", O_WRONLY)p;
dup2(out,1);


What Shall I do in case of appending??? I am using here O_WRONLY TO WRITE.BUT IF i wanna append, whats the word?
# 2  
Old 11-17-2008
Open the file with O_WRONLY|O_APPEND

Last edited by Corona688; 11-17-2008 at 05:49 PM..
# 3  
Old 11-18-2008
MySQL

I have tried dup by itself in a little program its working. But when am using it in my original program its hanging...

Code:
// included everything needed. sys/types.h fcntl.h ...
int in, out, out1;

int doable(char Buffer[], char *args[], int *back_ground)
{
         //------watever here...

           // length is length of the Buffer.
           for(i = 0; i<length;i++)
           {
                   switch(Buffer[i])
                   {
                          case '>':
                              argument[0] = &Buffer[i+2];//consider &buffer[i+1] space . the user will write ls > myfile
                              out = open (argument[0] , O_WRONLY 
O_CREAT);
                              dup2(out,1);
                              i = length+1;
                   }
              }
}



int main()

{
int x1 = 0;
int back_ground = 0;
while(1)
{
      x1 = doable(Buffer, arguments, &back_ground)
      child = fork()
      if(child == 0)
      {      // i call execvp
       }
      else
       {
               // if backgroun or not.and i do the wait..and return if no error from execvp.(i       use       waitpid)
        }

// after both parent & child finish
       close(out);
      printf("new command line");
}}


The program is working with me without adding the dup and stuff.But after I added the dup & stuff..Whenever I run command ls > myfile ...the program hangs..and in my file nthg is printed...

Last edited by joey; 11-18-2008 at 08:09 AM..
# 4  
Old 11-18-2008
The shell is going to process that > for you and open the file before your program even begins to run. Similarly, >> would cause the shell to append for you. Surround them in single quotes like '>' to tell the shell not to process it for you.

Beyond that I can't tell what it's doing at all unless you post your actual program, not a mock-up.
# 5  
Old 11-18-2008
I sent you my whole program as a message, I prefer not to post here my complete program.

Afraid some people from my class find my code..
# 6  
Old 11-18-2008
Joey -
Homework and classwork are not allowed on the Forums. Sorry. Thread closed.
Login or Register to Ask a Question

Previous Thread | Next Thread

7 More Discussions You Might Find Interesting

1. UNIX and Linux Applications

Deja-dup make my / full. So I cannot restore my back up

The problematic directory is the following: /root/.cache/deja-dup This directory grows until my "/" is full and then the restoring activity fails. I already tried to create a symbolic link with origin another partition where I have more space. However during the restoring activity ... (4 Replies)
Discussion started by: puertas12
4 Replies

2. Shell Programming and Scripting

How to count dup records in file?

Hi Gurus, I need to count the duplicate records in file file abc abc def ghi ghi jkl I want to get below result: abc ,2 abc, 2 def ,1 ghi ,2 ghi, 2 jkl ,1 or abc ,2 def ,1 (3 Replies)
Discussion started by: ken6503
3 Replies

3. Shell Programming and Scripting

Identify duplicates and update the last 2 digits to 0 for both the Orig and Dup

Hi, I have a requirement where I have to identify duplicates from a file based on the first 6 chars (It is fixed width file of 12 chars length) and whenever a duplicate row is found, its original and duplicate row's last 2 chars should be updated to all 0's if they are not same. (I mean last 2... (3 Replies)
Discussion started by: farawaydsky
3 Replies

4. Red Hat

ping error (DUP!)

Ntop is running on redhat. But It gives DUP! error while pinging to any places I dont know why DUP! error is occured. # ping google.com PING google.com (74.125.39.147) 56(84) bytes of data. 64 bytes from fx-in-f147.1e100.net (74.125.39.147): icmp_seq=1 ttl=44 time=54.1 ms 64 bytes from... (6 Replies)
Discussion started by: getrue
6 Replies

5. Programming

Understanding the purpose of dup/dup2

I'm having difficulty understanding the purposes of using dup/dup2 when involving forks. for example, if we call fork() once, that is, we are creating a child process. In what cases would we need to use dup or dup2 to duplicate the file descriptors for standard output and standard error? What... (1 Reply)
Discussion started by: Yifan_Guo
1 Replies

6. Programming

fork() and dup()

I have met this code: switch(fork()) { case 0: close(1); dup(p); close(p); close(p); execvp(<whatever>); perror("Exec failed"); } Can anyone tell me what this piece of code does? Thx alot.. (1 Reply)
Discussion started by: AkumaTay
1 Replies

7. Programming

dup()

Would anyone be so kind to explain to me the function of dup() in UNIX? As far as I am concerned, it duplicates a file descriptor. Under what circumstances would we need to duplicate a file descriptor in a UNIX environment? Thank you. vinchen (3 Replies)
Discussion started by: vinchen
3 Replies
Login or Register to Ask a Question