Thread View: gnu.g++.bug
1 messages
1 total messages
Started by Jacques Savoy
Wed, 04 Oct 1989 14:55
Bug with flag a_createonly
Author: Jacques Savoy
Date: Wed, 04 Oct 1989 14:55
Date: Wed, 04 Oct 1989 14:55
122 lines
2815 bytes
2815 bytes
BUG : The flag a_createonly in GNU C++ Version 1.35
In the class File, i found a bug when i use the following
instruction :
if (stto.open(to, io_writeonly, a_createonly) == NULL) {
The flag a_createonly (create the file, fail if it already exists)
doesn't do the correct jog.
If the file doesn't exist, the file is not open.
If the file exists, the file is truncated.
Here is my program :
------------------------------------------------------------------------
// File bugfile.cc
#include <stream.h>
void error(char* msg)
{
cerr << msg;
exit(-1);
}
void copyFile(char* from, char* to)
{
File stfrom, stto;
char c, msg[128];
// Open for read only (io_readonly), fail if file doesn't exists (a_useonly)
if (stfrom.open(from, io_readonly, a_useonly) == NULL) {
strcpy(msg, "can't open file ");
strcat(msg, from);
error(msg);
}
// Open for write only (io_writeonly),
// fail if file doesn't exists (a_createonly)
if (stto.open(to, io_writeonly, a_createonly) == NULL) {
strcpy(msg, "can't open file ");
strcat(msg, to);
error(msg);
}
while (stfrom.get(c))
stto.put(c);
if (stfrom.close() != NULL) {
strcpy(msg, "can't close file ");
strcat(msg, from);
error(msg);
}
if (stto.close() != NULL) {
strcpy(msg, "can't close file ");
strcat(msg, to);
error(msg);
}
}
main(int argc, char* argv[])
{
char *prgname;
prgname = argv[0];
if (argc != 3) {
error("I need two arguments\n");
exit(-1);
}
cout << "Copy from file " << argv[1];
cout << " to file " << argv[2] << "\n";
copyFile(argv[1], argv[2]);
cout << "End of job\n";
exit(0);
}
// EOF File bugfile.cc
------------------------------------------------------------------------------
result of $ls t*
t1
test.c
test.cc
test1.cc
test2.cc
treebinptr.cc
ttt
result of $cat ttt
aaaa
bbbb
cccc
dddd
result of $cat t1
Hello
How
Are
You
Today
?
result of $bugfile ttt t2
Copy from file ttt to file t2
error in File t2: No such file or directory
can't open file t2
result of $bugfile ttt t1
Copy from file ttt to file t1
End of job
result of $cat t1
aaaa
bbbb
cccc
dddd
day
?
J.SAVOY (savoy@iro.umontreal.ca)
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads