Programming Guide


Copies a file

int sm_file_copy(char *source, char *destination, char *mode);

source, destination
The paths of the file in its original and new locations. source and destination must be different file paths.

destination must include a file name; implicit copying to the same name as the source file yields an error. In three-tier applications, the path to source and destination can include a file access server ID in this format:


If you omit server-id, Panther looks for the file locally.

Specifies whether to perform a text or binary copy; supply one of these arguments:


Binary transfer


Text transfer



sm_file_copy copies the specified file. If the destination file does not exist, sm_file_copy creates it; if it already exists, the function overwrites it.

In a three-tier environment, you can copy files to and from a remote file access server by prefixing the file path with the server ID. For example, this JPL copies file rpt.out from server oak to the local client:

vars err = ""
if sm_file_exists("oak!/disk/reports/rpt.out")
err = sm_file_copy \
("oak!/disk/reports/rpt.out", "c:\reports\rpt.out", "b")
if err == 0 && cleanup() == 1
call sm_file_remove("oak!/disk/reports/rpt.out")

See Also

sm_file_exists, sm_file_move, sm_file_remove