Need help in Unix C programming


 
Thread Tools Search this Thread
Top Forums Programming Need help in Unix C programming
# 1  
Old 04-07-2010
Need help in Unix C programming

hey guys.
im currently trying to make a program in unix (redhat, compiling the .c file using gcc) and i need urgent urgent help.

i need to save objects of structures in a file but they dont seem to be saving properly. ive been on it for a whole day now. dunno why i cant do it.
when i try to read, it reads the first search i give it but after that i start getting garbage

here is the structure(names of variables omitted)

Code:
struct Employee_Details
{       char [20]
        long int 
        float 
        char [20]
        time_t 
}emp,temp;

the rest of the relevant code to add is here,

Code:
recv(sd,&emp,sizeof(emp),0);
fd=open("DB.txt",O_RDWR|O_CREAT,0766);
lseek(fd,0,SEEK_END);
write(fd,&emp,sizeof(emp));
send(sd,"Added",6,0);

here is the code to read the file

Code:
fd=open("DB.txt",O_RDWR|O_CREAT,0766);
recv(sd,&emp,sizeof(emp),0);
lseek(fd,0,SEEK_SET);
while(flag) /* flag=1*/
{       read(fd,&temp,sizeof(temp));
         if(temp.INT_MEMBER==emp.INT_MEMBER)
        {       flag=0;
                 send(sd,&temp,sizeof(temp),0);
                 lseek(fd,-(sizeof(temp)),SEEK_CUR);
                 temp.TimeStamp=time(NULL);
                 write(fd,&temp,sizeof(temp));
        }
}

please help me out

Last edited by pludi; 04-08-2010 at 01:52 AM.. Reason: code tags, please...
# 2  
Old 04-08-2010
Are you checking the return codes from your calls? Especially to recv()?
# 3  
Old 04-08-2010
ya i am. put perror's everywhere. also checking return values.
but when i did that today another problem was found. im using sockets so when a server sends an ogject to client, it sends X bytes of data but client always receives X-4 bytes of data, thus the values never match...
# 4  
Old 04-08-2010
If you're not receiving all the data, do another read() to get the rest. Like any stream, you're not guaranteed it all in one go. If you've been assuming you always get it all at once, that's probably where the garbage is coming from too -- writing data you never got, and starting halfway through other things when you start the "next" struct. If you're sending fixed size data structures back and forth you might consider packet sockets instead of stream ones; UDP packets will always arrive whole. They can't hold much more than one kilobyte per packet though.

Also, please post your actual code. If you have perrors everywhere then you clipped an awful lot of error checking to post that here; most of our suggestions would be "check z's return value" when you're already doing so. Smilie

Last edited by Corona688; 04-08-2010 at 02:03 PM..
# 5  
Old 04-08-2010
^thnx man. will do tht.
my code is pretty messed up right now with loads of comments n all. should i still post it?
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

How does unix system administration, unix programming, unix network programming differ?

How does unix system administration, unix programming, unix network programming differ? Please help. (0 Replies)
Discussion started by: thulasidharan2k
0 Replies

2. Shell Programming and Scripting

Unix programming help

hey guys im trying to create a batch file that makes directories i have this code atm #!/bin/sh echo "Please enter file name:" read Filename echo "enter number of files to be created " read created for (( i = 1; i < &created; 1++ )) do mkdir $Filename$i done assume i enter... (7 Replies)
Discussion started by: josh111
7 Replies

3. UNIX for Dummies Questions & Answers

C Programming in Unix

I asked this over on the "High Level Programming Section" but there must be a secret handshake or something that I am missing.....anyway....if a person wanted to start some C programming in UNIX what would be the best compiler to start with ?? I am fairly familiar with visual studio and have done... (2 Replies)
Discussion started by: zapper222
2 Replies

4. UNIX for Dummies Questions & Answers

Carreer:Networking Programming in Unix (C programming Language)

Hello, I am trying to learn Networking Programming in C in unix enviorment. I want to know how good it is to become a network programmer. i am crazy about Network programming but i also want to opt for the best carreer options. Anybody experienced Network Programmer, please tell me is my... (5 Replies)
Discussion started by: vibhory2j
5 Replies

5. Shell Programming and Scripting

Unix Systems Programming Vs Unix Programming

Several months ago I found a link that explained the difference between how a Unix Systems Admin would do scripting compared to what a Unix Programmer would do. It showed a basic script and then show several iterations that explained how the Systems Admin would change it to make it better. I was... (0 Replies)
Discussion started by: BCarlson
0 Replies

6. UNIX for Dummies Questions & Answers

new to unix programming

hi guys, I m from india. I m working as programmer in one of MNC. Since 3 years im working on Microsoft platform on dot net and platforms. but now i decided to shift my future to unix , Linux side. I want to be the part of this open source family. and with this i want to make my future also.... (6 Replies)
Discussion started by: d_swapneel14
6 Replies

7. UNIX for Advanced & Expert Users

unix programming

hi guys, I m from india. I m working as programmer in one of MNC. Since 3 years im working on Microsoft platform on dot net and platforms. but now i decided to shift my future to unix , Linux side. I want to be the part of this open source family. and with this i want to make my future also.... (3 Replies)
Discussion started by: d_swapneel14
3 Replies

8. Programming

c programming or unix programming!?

i would like advice on the usbject of c programming (in the middle of reading a book on C). could i benefit more if i apply that knowledge in the unix format if i were able to, or would that take the point out of learning C, basically I want to stay away from strying too far away from unix and use... (1 Reply)
Discussion started by: moxxx68
1 Replies

9. UNIX for Dummies Questions & Answers

programming on unix

can someone tell me some programming commands on unix? (2 Replies)
Discussion started by: fretis
2 Replies
Login or Register to Ask a Question