#include <stdio.h> #include <string.h>
#define PASS_LEN_MAX 256 #define PASS_FILE "pass.txt" #define SUCCESS 1 #define NO_PASS_FILE -1 #define READ_PASS_ERR -2
void inputPass(char *pass); void writePass(char *newPass); int readPass(char *pass);
int main(void){ char pass[PASS_LEN_MAX] = {0};
inputPass( pass ); puts( pass ); writePass( pass ); return 0; }
void inputPass(char *pass){ fputs("Input Password: ", stdout); fgets(pass, PASS_LEN_MAX, stdin); }
void writePass(char *newPass){ char oldPass[PASS_LEN_MAX] = {0}; FILE *fp = NULL;
if(SUCCESS == readPass( oldPass )){ if( strcmp(oldPass, newPass) == 0 ){ return; } } if( (fp = fopen(PASS_FILE, "w")) == NULL ){ fprintf(stderr, "ERROR. Cannot open file(write):%s\n", PASS_FILE); return; }
if(EOF == fputs( newPass, fp)){ fprintf(stderr, "ERROR. Fail to fputs():%s\n", PASS_FILE); } fclose(fp); }
int readPass(char *pPass){ FILE *fp;
if((fp = fopen(PASS_FILE, "r")) == NULL){ fprintf(stdout, "Cannot open file(read):%s\n", PASS_FILE); return NO_PASS_FILE; }
if(NULL == fgets( pPass, PASS_LEN_MAX, fp) ){ fprintf(stdout, "Cannot read password.\n"); fclose(fp); return READ_PASS_ERR; }
fclose(fp); return SUCCESS; }