Commit 811d30c1 authored by Roshan Rabinarayan's avatar Roshan Rabinarayan

hopefully final

parent 1b5d4448
...@@ -33,10 +33,13 @@ unsigned modulus( unsigned char *num, size_t size, unsigned divisor) { ...@@ -33,10 +33,13 @@ unsigned modulus( unsigned char *num, size_t size, unsigned divisor) {
void file_del( char *key) void file_del( char *key)
{ {
int index=modulus(key,256,setSize); int index=modulus(key,256,setSize);
lseek(fds[index],0,SEEK_SET); fflush(stdout);
int length=0; int length=0;
sem_wait(&mutex[index]); sem_wait(&mutex[index]);
char blankspace[512]; char blankspace[512];
char ch;
int k=-1;
lseek(fds[index], 0, SEEK_SET);
memset(blankspace,0,512); memset(blankspace,0,512);
char *line; char *line;
char temp[514]; char temp[514];
...@@ -52,12 +55,13 @@ void file_del( char *key) ...@@ -52,12 +55,13 @@ void file_del( char *key)
if(strcmp(key,fkey)==0){ if(strcmp(key,fkey)==0){
lseek(fds[index],position,SEEK_SET); lseek(fds[index],position,SEEK_SET);
write(fds[index],blankspace,strlen(temp)); write(fds[index],blankspace,strlen(temp));
puts(temp);
break; break;
} }
position=ftell(fp); position=ftell(fp);
} }
printf("length %d",length);
sem_post(&mutex[index]); sem_post(&mutex[index]);
} }
...@@ -131,7 +135,7 @@ off_t file_put(char *key,char *value) ...@@ -131,7 +135,7 @@ off_t file_put(char *key,char *value)
printf("value:(%s)(%s)\n",fvalue,value); printf("value:(%s)(%s)\n",fvalue,value);
fflush(stdout); fflush(stdout);
fseek(fp,position,SEEK_SET); fseek(fp,position,SEEK_SET);
snprintf(lin, sizeof(lin),"%s:%s\n",key,value); snprintf(lin, strlen(key)+strlen(value)+2,"%s:%s\n",key,value);
if(fputs(lin,fp)<0) if(fputs(lin,fp)<0)
printf("\n[unable to perform file_put]\n"); printf("\n[unable to perform file_put]\n");
return 0; return 0;
...@@ -187,10 +191,9 @@ int main() ...@@ -187,10 +191,9 @@ int main()
//file_get(prevkey, value); // Doesnot depend on key arg, returns key and value at offset 0 //file_get(prevkey, value); // Doesnot depend on key arg, returns key and value at offset 0
//printf("(%s)", value); //printf("(%s)", value);
//file_del("29"); //file_del("29");
file_get("24",value); //file_get("24",value);
printf("(%s)\n", value); // printf("(%s)\n", value);
memset(value,0,sizeof(value)); file_del("21");
file_get("21",value); //printf("(%s)\n", value);
printf("(%s)\n", value);
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment