DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 Tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - downloadIndex: ┃ T c ┃
Length: 1924 (0x784) Types: TextFile Names: »create_f.c«
└─⟦8ee07855d⟧ Bits:30000545 8mm tape, Rational 1000, DTIA 2_1_6 └─ ⟦0c25cb74a⟧ »DATA« └─⟦038380b96⟧ └─⟦d0624311f⟧ Bits:30000529 8mm tape, Rational 1000, DTIA 2_1_7 └─ ⟦f494b5154⟧ »DATA« └─⟦038380b96⟧ └─ ⟦this⟧ »create_f.c« └─⟦8ee07855d⟧ Bits:30000545 8mm tape, Rational 1000, DTIA 2_1_6 └─ ⟦0c25cb74a⟧ »DATA« └─⟦0732ea0cf⟧ └─⟦d0624311f⟧ Bits:30000529 8mm tape, Rational 1000, DTIA 2_1_7 └─ ⟦f494b5154⟧ »DATA« └─⟦0732ea0cf⟧ └─ ⟦this⟧ »../../dtia/release_apollo_2.1/create_f.c« └─⟦8ee07855d⟧ Bits:30000545 8mm tape, Rational 1000, DTIA 2_1_6 └─ ⟦0c25cb74a⟧ »DATA« └─⟦25fab149a⟧ └─⟦d0624311f⟧ Bits:30000529 8mm tape, Rational 1000, DTIA 2_1_7 └─ ⟦f494b5154⟧ »DATA« └─⟦25fab149a⟧ └─ ⟦this⟧ »../../dtia/release_sun_2.1/create_f.c« └─⟦8ee07855d⟧ Bits:30000545 8mm tape, Rational 1000, DTIA 2_1_6 └─ ⟦0c25cb74a⟧ »DATA« └─⟦be254d495⟧ └─⟦d0624311f⟧ Bits:30000529 8mm tape, Rational 1000, DTIA 2_1_7 └─ ⟦f494b5154⟧ »DATA« └─⟦be254d495⟧ └─ ⟦this⟧ »../../dtia/release_aix_2.1/create_f.c« └─⟦8ee07855d⟧ Bits:30000545 8mm tape, Rational 1000, DTIA 2_1_6 └─ ⟦0c25cb74a⟧ »DATA« └─⟦c67979795⟧ └─⟦d0624311f⟧ Bits:30000529 8mm tape, Rational 1000, DTIA 2_1_7 └─ ⟦f494b5154⟧ »DATA« └─⟦c67979795⟧ └─ ⟦this⟧ »../../dtia/release_hp_2.1/create_f.c«
#ifndef lint #ifndef DEBUG static char SCCS_id[] = "@(#)create_f.c 2.1 90/08/02 19:04:17 Copyright(c) 1990 by Rational."; #else static char SCCS_id[] = "@(#)create_f.c DEBUG 2.1 90/08/02 19:04:17 Copyright(c) 1990 by Rational."; #endif #endif #define CREATE_F #include "talk.h" #undef CREATE_F static int error_number = E_OK; static int already_exists = FALSE; static int fd; static short is_directory; static short create_directories; static int create_sub_dir(name) char *name; { char *p; int nb_sub_dir=0; for (p=(*name=='/')?name+1:name;*p;p++) if (*p=='/') { *p='\0'; nb_sub_dir++; } /* All the '/' are '\0' */ /* except the first one if name is */ /* an absolute path */ /* so name points to the first sub_dir */ /* if nb_sub_dir>0. */ while (nb_sub_dir) { if (access(name,F_OK)== -1) { /* Sub directory doesn't exist */ if (mkdir(name,0755)== -1) { /* Unable to create sub directory */ error_number = errno; return (-1); } } /* Let's go to the following sub_directory */ for (p=name;*p;p++); *p='/'; nb_sub_dir--; } return (0); } int create_f_is_directory_in(id) int id; { create_directories = TRUE; error_number = E_OK; already_exists = FALSE; is_directory = id; return E_OK; } int create_f_create_directories_in(cd) int cd; { create_directories = cd; return E_OK; } int create_f_remote_file_in(name) char *name; { if (create_directories) { if ((create_sub_dir(name)) == -1) { return E_OK; } } if (access(name,F_OK) == -1) { if (is_directory) { if (mkdir(name,0755) == -1) error_number = errno; } else { if ((fd=open(name,O_WRONLY|O_CREAT,0644))== -1) error_number = errno; else { close(fd); } } } else { already_exists = TRUE; } return E_OK; } int create_f_options_in(options) char *options; { return E_OK; } int create_f_end() { return (already_exists ? EALREADYEXISTS : error_number); }