how to copy file to a directory


 
Thread Tools Search this Thread
Top Forums Programming how to copy file to a directory
# 1  
Old 01-23-2011
how to copy file to a directory

Hello,

I've been spending a lot of hours trying to imitate cp copying a file to a directory.
Code:
cp [source file] [directory target]

I just can't seem to write to a specified directory, it only creates a copy on the current directory.

any hints/tips will help! Thanks!

here's the code i've been trying to manipulate:
Code:
#include        <stdio.h>
#include        <unistd.h>
#include        <fcntl.h>
#include        <stdio.h>
#include        <sys/types.h>
#include        <dirent.h>

#define BUFFERSIZE      4096
#define COPYMODE        0644

void oops(char *, char *);

main(int ac, char *av[])
{
  int     in_fd, out_fd, n_chars;
  char    buf[BUFFERSIZE];
  DIR     *dir_ptr;
  struct dirent *direntp;

  /* check args */
  if ( ac != 3 ){
    fprintf( stderr, "usage: %s source destination\n", *av);
    exit(1);
  }
  /* open files*/

  if ( (in_fd=open(av[1], O_RDONLY)) == -1 )
    oops("Cannot open ", av[1]);

  if ( (out_fd=creat( "cat.txt", COPYMODE)) == -1 )
    oops( "Cannot creat", av[2]);

  /* copy files*/

  if ( ( dir_ptr = opendir( av[2] ) ) == NULL )

  while ( (n_chars = read(in_fd , buf, BUFFERSIZE)) > 0 )
     write( out_fd, buf, n_chars);

  if ( n_chars == -1 )
    oops("Read error from ", av[1]);

  /* close files*/

  if ( close(in_fd) == -1 || close(out_fd) == -1 )
    oops("Error closing files","");

  closedir(dir_ptr);
}

void oops(char *s1, char *s2)
{
  fprintf(stderr,"Error: %s ", s1);
  perror(s2);
  exit(1);
}

---------- Post updated at 05:41 AM ---------- Previous update was at 02:23 AM ----------

perhaps this is a better question...

given the source code below, how can I create a file if I pass the directory location to av[1]?

Example (given it compiles correctly)
Code:
$ cc test.c

$ a.out /home/users

$ ls users
.
..
new.txt

Code:
#include        <stdio.h>
#include        <sys/types.h>
#include        <dirent.h>

int main(int ac, char * av[])
{
  int fd;
DIR             *dir_ptr;               /* the directory */
struct dirent   *direntp;       /* each entry    */

if ( ( dir_ptr = opendir( av[1] ) ) == NULL ){
  fprintf(stderr,"ls1: cannot open %s\n", av[1]);
 }
 else{

   fd = creat("new.txt","0644");

   closedir(dir_ptr);
 }

}


Last edited by Scott; 01-23-2011 at 08:33 AM.. Reason: Please use code tags
# 2  
Old 01-23-2011
I'm sorry i don't get your point.if you wanna copy ./a.txt to somedir/b.txt,why don't you just create a new file "somedir/b.txt" and write into it?Be care with absolute/relative path problem.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

how to copy the directory but not copy certain file

Hi experts cp bin root src /mnt but not copy bin/bigfile any help? ( I post this thread in the "redhat" forum wrongly, I don't know how to withdraw that question in that wrong forum) Thanks (6 Replies)
Discussion started by: yanglei_fage
6 Replies

2. Shell Programming and Scripting

Need Help - match file name and copy to Directory

I am trying to sort the following files from folder Bag to Apple, Cat Food, Dog Food. I can get all of the files I want into a new folder, but not sure of the best approch to get them to their final directory My Files ========== apple.1234.ext apple.1235.ext cat food 101.ext Cat Food... (2 Replies)
Discussion started by: mtschroeder
2 Replies

3. Shell Programming and Scripting

Copy file after searching in a directory

Hi, I am looking for an answer for following senario: I have a text file (base.txt) which consist list of files to be searched like: base.txt abc.txt def.txt fgh.txt Now i am going to search all the listed files in another directory after reading them one by one, once i found the... (10 Replies)
Discussion started by: apjneeraj
10 Replies

4. UNIX for Dummies Questions & Answers

How to copy a file to a directory?

Hello all, I've been researching this problem for days, and have gotten no luck . =/ How do you copy a file to another directory without being in the same directory as the file? So, for example, say I wanted to copy the file 'my.txt' that is in the directory ' /export/hom0/user/asdf ' to the... (9 Replies)
Discussion started by: kvnqiu
9 Replies

5. Shell Programming and Scripting

find and copy file to another directory..

Hi Everybody, i want a samll help to write a script. i had source location with :/user/bin (bin contains subdirectories with like names emails etc and had several files in each subdirectory) and target location with :/usr/scripts (having same subdirectories names and had some files)... (1 Reply)
Discussion started by: Reddy482
1 Replies

6. Shell Programming and Scripting

Copy the latest file to a directory

Hi Team, I wish to copy the latest file of pattern "MyFile*" to some other location. I need to do all the operation in a single command separated by |. ls -rt <MyFile*> | tail -1 | <copy command>. How can I do? Please help me. Thanks, Kanda (2 Replies)
Discussion started by: spkandy
2 Replies

7. Shell Programming and Scripting

Copy the latest file from one directory to another

Hi All, I am in the directory a/b/processed the files in this directories are -rw-r--r-- 1 owb users 330 Aug 8 chandantest.txt_08082008 -rw-r--r-- 1 owb users 220 Aug 7 chandantest.txt_07082008 -rw-r--r-- 1 owb users 330 Aug 6... (3 Replies)
Discussion started by: chandancsc
3 Replies

8. Shell Programming and Scripting

how to copy a file to a directory ,where file and dir are sent as args to a function?

Hi all, I wanted to know how i can copy a file to a directory and then verify if that file is completely copied or not? Now the issues here is that the dir and the source file are to be sent as arguments to a function( this function should actually copy the files to a dir, then check if its... (0 Replies)
Discussion started by: wrapster
0 Replies

9. Solaris

Copy files from the file to another directory

I have created a file that has list of all the files I want to copy into another directory.Is there a way to do it? Thanks In advance (4 Replies)
Discussion started by: shreethik
4 Replies

10. UNIX for Dummies Questions & Answers

copy file to a directory by sequence

Hi I am new in unix and look for help in urgent. I have a list of data files that located in a directory, and need to copy to another directory for loading. The condition here is, the list of data files has to be copy over by sequence, and if there is no file in targetted directory already. ... (4 Replies)
Discussion started by: fooky
4 Replies
Login or Register to Ask a Question