Rev 647 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 647 | Rev 6433 | ||
---|---|---|---|
Line 4... | Line 4... | ||
4 | int fwrite(void *buffer,int size,int count,FILE* file) |
4 | int fwrite(void *buffer,int size,int count,FILE* file) |
5 | { |
5 | { |
6 | dword res; |
6 | dword res; |
7 | dword fullsize; |
7 | dword fullsize; |
Line -... | Line 8... | ||
- | 8 | ||
- | 9 | if(!file || !buffer) |
|
8 | 10 | { |
|
- | 11 | errno = E_INVALIDPTR; |
|
- | 12 | return EOF; |
|
Line -... | Line 13... | ||
- | 13 | } |
|
- | 14 | ||
- | 15 | ||
- | 16 | if ((file->mode & 3)==FILE_OPEN_READ) |
|
- | 17 | { |
|
- | 18 | errno = E_ACCESS; |
|
- | 19 | return 0; |
|
9 | if (file->mode==FILE_OPEN_READ) return 0; |
20 | } |
10 | 21 | ||
- | 22 | if ((file->mode &3)==FILE_OPEN_APPEND) |
|
11 | if (file->mode==FILE_OPEN_APPEND) |
23 | file->filepos=file->filesize; |
Line 12... | Line 24... | ||
12 | file->filepos=file->filesize; |
24 | |
Line 13... | Line 25... | ||
13 | fullsize=count*size; |
25 | fullsize=count*size; |
Line 27... | Line 39... | ||
27 | } |
39 | } |
28 | else return(0); |
40 | else return(0); |
Line 29... | Line 41... | ||
29 | 41 | ||
30 | } |
42 | } |
31 | */ |
43 | */ |
32 | if ((file->mode==FILE_OPEN_WRITE) || (file->mode==FILE_OPEN_APPEND)) |
44 | if ((file->mode &3)==FILE_OPEN_WRITE || (file->mode&3)==FILE_OPEN_APPEND) // always true, as read checked previous |
33 | { |
45 | { |
34 | if (file->filepos==0) |
46 | if (file->filepos==0) |
35 | { //file mot craeted yet |
47 | { //file mot created yet |
36 | res=_ksys_rewritefile(file->filename,fullsize,buffer); |
48 | res=_ksys_rewritefile(file->filename,fullsize,buffer); |
37 | if (res==0) |
49 | if (res==0) |
38 | { |
50 | { |
39 | file->filepos+=fullsize; |
51 | file->filepos+=fullsize; |
40 | fullsize=fullsize/count; |
52 | fullsize=fullsize/count; |
- | 53 | return(fullsize); |
|
- | 54 | } else |
|
- | 55 | { |
|
- | 56 | errno = -res; |
|
41 | return(fullsize); |
57 | return(0); |
42 | } |
- | |
43 | else return(0); |
58 | } |
44 | } |
59 | } |
45 | else |
60 | else |
46 | { |
61 | { |
47 | res=_ksys_appendtofile(file->filename,file->filepos,fullsize,buffer); |
62 | res=_ksys_appendtofile(file->filename,file->filepos,fullsize,buffer); |
48 | if (res==0) |
63 | if (res==0) |
49 | { |
64 | { |
50 | file->filepos+=fullsize; |
65 | file->filepos+=fullsize; |
51 | fullsize=fullsize/count; |
66 | fullsize=fullsize/count; |
- | 67 | return(fullsize); |
|
- | 68 | } else |
|
- | 69 | { |
|
- | 70 | errno = -res; |
|
52 | return(fullsize); |
71 | return(0); |
53 | } |
- | |
54 | else return(0); |
72 | } |
55 | } |
73 | } |
56 | } |
74 | } |
57 | else return(0); |
75 | else return(0); |
58 | }(file-> |
76 | }(file-> |