Dear Group
I have encountered a problem with fclose and I am wondering if anyone
could provide some insight about this problem to me. Currently, I am
working on a small personal project that is requiring for me to alter
some existing code to a program. While running the unaltered code, I
kept encountering an application (The exception unknown software
exception(0xc00 000fd) etc. .. etc... etc... I am running W2K Pro).
Through a bit of debugging I singled out where the problem is
occuring. It is occuring when it attemps to close a file that had
previously been open. While tinkering with this problem, I noticed
that no error occured while closing when I manually entered the file
name into the source code. The error only occured when the user has to
key-in the file name from a command line (this is how I wish for the
program to run). What is causing this problem? Below I have provided
some source code to the function that is causing the problem. Here is
the version of the source in which no error occurs. I have set the
string, finc_name, to the file name "all.inc". Normally, the array is
set to a default of size 80 similar to fpov_name. I have also
commented out the portion of the code which prompts the user to key-in
the file name.
Thanks
Marcus D. Jacobs
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>
#include "numtypes.h "
/* #include "numtable.h "*/
typedef struct
{
Word x,r,g,b;
} colorinfo;
FILE *finc, *fpov, *frad;
char ch, frad_name[80], finc_name[] = "all.inc", fpov_name[80] ,
is_num;
char *pov_word;
char chpov , colorend='f';
colorinfo color;
Word texture[2600];
void reads_triangle( Word pov_num);
void reads_smoothtri angle(Word pov_num);
void reads_inc(void) ;
void reads_color(voi d);
void reads_texture(v oid);
main(void)
{
int m=1, n, j;
char chtext, finish;
char *inc_word;
int isize;
int j2;
/*
printf("Enter POV include file name ( *.inc ) : ");
gets(finc_name) ;
printf("\n");
*/
finc=fopen(finc _name, "r");
chtext = getc(finc);
if (finc==NULL)
{ printf(" Can't open %s\n", finc);
exit(EXIT_FAILU RE);
}
while (chtext != EOF )
{
finish ='f';
if ( ( inc_word = malloc(25)) == NULL )
{ printf("Out of memory");
exit(EXIT_FAILU RE);;
}
while (isspace(chtext )) chtext = getc(finc);
j=0;
while (chtext != EOF && isspace(chtext) == 0)
{ inc_word[j++] = chtext;
chtext = getc(finc);
}
inc_word[j] = '\0';
if (strcmp(inc_wor d, "texture") == 0 && finish == 'f')
{ while (isspace(chtext )) chtext = getc(finc);
n=0;
chtext = getc(finc);
while ( chtext != '}' )
{
texture[m][n++] = chtext;
chtext = getc(finc);
}
texture[m][n] = '\0';
/* printf(" texture = %s ", texture[m]);*/
m++;
finish = 't';
}
free(inc_word);
}
fclose(finc);
} 11 6407
Marcus Jacobs wrote: [...] char ch, frad_name[80], finc_name[] = "all.inc", fpov_name[80] , [...] gets(finc_name) ;
Here's at least one problem; there may be others. The
`finc_name' array is only eight characters long, so it can't
hold a string any longer than seven characters plus the
terminating '\0'. If the user types a longer name, the extra
characters won't fit in the array, and will most likely stomp
all over the nearby memory. What happens next is unpredictable,
but is unlikely to be a Happy Experience.
By the way, don't use gets(). See Question 12.23 in the
comp.lang.c Frequently Asked Questions (FAQ) list http://www.eskimo.com/~scs/C-faq/top.html
-- Er*********@sun .com
Marcus Jacobs <ma*******@hotm ail.com> wrote: I have encountered a problem with fclose and I am wondering if anyone could provide some insight about this problem to me. Currently, I am working on a small personal project that is requiring for me to alter some existing code to a program. While running the unaltered code, I kept encountering an application (The exception unknown software exception(0xc00 000fd) etc. .. etc... etc... I am running W2K Pro). Through a bit of debugging I singled out where the problem is occuring. It is occuring when it attemps to close a file that had previously been open. While tinkering with this problem, I noticed that no error occured while closing when I manually entered the file name into the source code. The error only occured when the user has to key-in the file name from a command line (this is how I wish for the program to run). What is causing this problem? Below I have provided some source code to the function that is causing the problem. Here is the version of the source in which no error occurs. I have set the string, finc_name, to the file name "all.inc". Normally, the array is set to a default of size 80 similar to fpov_name. I have also commented out the portion of the code which prompts the user to key-in the file name.
#include <stdio.h> #include <stdlib.h> #include <ctype.h> #include <string.h> #include "numtypes.h " /* #include "numtable.h "*/
typedef struct { Word x,r,g,b; } colorinfo;
FILE *finc, *fpov, *frad; char ch, frad_name[80], finc_name[] = "all.inc", fpov_name[80] , is_num; char *pov_word; char chpov , colorend='f'; colorinfo color; Word texture[2600];
void reads_triangle( Word pov_num); void reads_smoothtri angle(Word pov_num); void reads_inc(void) ; void reads_color(voi d); void reads_texture(v oid);
main(void)
int main( void )
since main() is supposed to return an int.
{ int m=1, n, j; char chtext, finish; char *inc_word; int isize;
int j2;
/* printf("Enter POV include file name ( *.inc ) : ");
You better add here
fflush( stdout );
or the user may not see the request.
gets(finc_name) ;
Never, ever use gets(). You will never be able to ascertain that the
user does not enter a file name that's longer than the length of the
buffer you supply. Use fgets().
printf("\n"); */
finc=fopen(finc _name, "r"); chtext = getc(finc);
if (finc==NULL) { printf(" Can't open %s\n", finc); exit(EXIT_FAILU RE); }
You need to check if fopen() was successful *before* you call getc().
And you must make 'chtext' an int, not a char. Otherwise you won't be
able to check for EOF. EOF is a return value of getc() that can't be
stored in a char.
while (chtext != EOF ) { finish ='f'; if ( ( inc_word = malloc(25)) == NULL ) { printf("Out of memory"); exit(EXIT_FAILU RE);; } while (isspace(chtext )) chtext = getc(finc);
What is supposed to happen when getc() returns EOF, e.g. because the
input file is broken and does not look like you expect it?
j=0; while (chtext != EOF && isspace(chtext) == 0) { inc_word[j++] = chtext; chtext = getc(finc); }
You never check that you don't get more than 24 characters in a row.
If this happens you write past the end of the memory you allocated.
inc_word[j] = '\0';
if (strcmp(inc_wor d, "texture") == 0 && finish == 'f') { while (isspace(chtext )) chtext = getc(finc); n=0; chtext = getc(finc); while ( chtext != '}' ) { texture[m][n++] = chtext;
'texture' is declared as an array of 'Word' (whatever that's supposed
to be). Unless 'Word' is some kind of array (of chars?) and not just a
pointer to an array this looks fishy, to say the least. Even assuming
that 'Word' is typedef'ed to be an array of chars you don't check that
you don't write past its end. And if you do anything can happen.
Finally, since you start with m = 1, why don't you want to use the
first element of 'texture'?
chtext = getc(finc); } texture[m][n] = '\0'; /* printf(" texture = %s ", texture[m]);*/ m++; finish = 't'; }
And you also don't make sure that you don't read more elements into
'texture' than the 2600 'Word's you declared.
free(inc_word); }
fclose(finc);
You probably have been written into some memory you don't own,
overwriting some important structure for the file pointer. And
now you get what you deserve ;-) You might be unlucky in not
getting an error when you comment out the stuff for getting
the file name from the user because of a different layout of
the executable. But that does not mean that your program is
correct.
}
And finally you're missing returning an int.
Regards, Jens
--
_ _____ _____
| ||_ _||_ _| Je***********@p hysik.fu-berlin.de
_ | | | | | |
| |_| | | | | | http://www.physik.fu-berlin.de/~toerring
\___/ens|_|homs|_|oe rring
On 5 Aug 2003 14:53:20 -0700 ma*******@hotma il.com (Marcus Jacobs) wrote: Dear Group
I have encountered a problem with fclose and I am wondering if anyone could provide some insight about this problem to me. Currently, I am working on a small personal project that is requiring for me to alter some existing code to a program. While running the unaltered code, I kept encountering an application (The exception unknown software exception(0xc00 000fd) etc. .. etc... etc... I am running W2K Pro). Through a bit of debugging I singled out where the problem is occuring. It is occuring when it attemps to close a file that had previously been open. While tinkering with this problem, I noticed that no error occured while closing when I manually entered the file name into the source code. The error only occured when the user has to key-in the file name from a command line (this is how I wish for the program to run). What is causing this problem? Below I have provided some source code to the function that is causing the problem. Here is the version of the source in which no error occurs. I have set the string, finc_name, to the file name "all.inc". Normally, the array is set to a default of size 80 similar to fpov_name. I have also commented out the portion of the code which prompts the user to key-in the file name.
Thanks
Marcus D. Jacobs #include <stdio.h> #include <stdlib.h> #include <ctype.h> #include <string.h> #include "numtypes.h " /* #include "numtable.h "*/
typedef struct { Word x,r,g,b; } colorinfo;
FILE *finc, *fpov, *frad; char ch, frad_name[80], finc_name[] = "all.inc", fpov_name[80] , is_num; char *pov_word; char chpov , colorend='f'; colorinfo color; Word texture[2600];
You have not shown us the definition of Word, so we don't know what type
texture is.
void reads_triangle( Word pov_num); void reads_smoothtri angle(Word pov_num); void reads_inc(void) ; void reads_color(voi d); void reads_texture(v oid); main(void)
int main(void)
{ int m=1, n, j; char chtext, finish; char *inc_word; int isize;
int j2;
/* printf("Enter POV include file name ( *.inc ) : "); gets(finc_name) ;
When this is uncommented, if the user enters a file name longer than the
buffer you have just blown up your program.
printf("\n"); */
finc=fopen(finc _name, "r"); chtext = getc(finc);
Surely this should be after you've checked the open worked? Otherwise
*BANG*
if (finc==NULL) { printf(" Can't open %s\n", finc); exit(EXIT_FAILU RE); } while (chtext != EOF )
EOF might not fit in a char so chtext should have been declared as an
int rather than a char.
{ finish ='f'; if ( ( inc_word = malloc(25)) == NULL ) { printf("Out of memory"); exit(EXIT_FAILU RE);; } while (isspace(chtext )) chtext = getc(finc); j=0; while (chtext != EOF && isspace(chtext) == 0) { inc_word[j++] = chtext; chtext = getc(finc); }
inc_word[j] = '\0';
If a 25 character (or longer) word was entered you've just blown things
up again. You might want to either limit the above loop or use realloc.
if (strcmp(inc_wor d, "texture") == 0 && finish == 'f') { while (isspace(chtext )) chtext = getc(finc); n=0; chtext = getc(finc); while ( chtext != '}' ) { texture[m][n++] = chtext; chtext = getc(finc); }
Again, not check on going passed the end of the array. Also you are not
checking to see if getc succeeds.
texture[m][n] = '\0'; /* printf(" texture = %s ", texture[m]);*/ m++; finish = 't'; } free(inc_word); }
fclose(finc); }
There are probably other errors with the program, I could not be
bothered to check it carefully since it is so bad. I would also suggest
checking the FAQ for comp.lang.c (google will find it) for the correct
way to handle checking the results of file operations and probably
almost everything else in the program.
--
Mark Gordon
Paid to be a Geek & a Senior Software Developer
Although my email address says spamtrap, it is real and I read it.
Marcus Jacobs wrote: [...] { printf(" Can't open %s\n", finc); [...]
In addition to the other hints already given you probably want to use
{ printf(" Can't open %s\n", finc_name);
Additionally most times it's wise to write this information to standard
error:
{ fprintf(stderr, " Can't open %s\n", finc_name);
Andre
Marcus Jacobs <ma*******@hotm ail.com> wrote:
Beside what Artie has been already told you (about removing the '\n'
from the input) there are still several things that won't work: #include <stdio.h> #include <stdlib.h> #include <ctype.h> #include <string.h> #ifndef NUMTYPES_H #define NUMTYPES_H
#define MAX_WORD_LEN 20 typedef char Word[MAX_WORD_LEN+1] ;
#endif
Where's the #if (or similar) for this #endif?
typedef struct { Word x,r,g,b; } colorinfo;
FILE *finc, *fpov, *frad; char ch, frad_name[80], finc_name[80], fpov_name[80] , is_num; char *pov_word; char * finame; char chpov , colorend='f'; colorinfo color; Word texture[2600];
void reads_triangle( Word pov_num); void reads_smoothtri angle(Word pov_num); void reads_inc(void) ; void reads_color(voi d); void reads_texture(v oid);
int main(void) { int m=1, n, j; char chtext, finish; char *inc_word; int j2;
printf("Enter POV include file name ( *.inc ) : "); fgets(finc_name , 80, stdin); printf("%s", finc_name); printf("\n");
finc=fopen(finc _name, "r");
if (finc==NULL) { printf(" Can't open %s\n", finc); exit(EXIT_FAILU RE); }
chtext = getc(finc);
while (chtext != EOF )
As long as you don't make 'chtext' an int you definitely will
have only a near-to-zero chance of it being equal to EOF. EOF is
typically an -1 *integer* (but don't rely on this, but you can
rely on *not* being able to store it in a char). So the above
comparison will nearly always fail and you never will stop looping.
{ finish ='f'; if ( ( inc_word = malloc(25)) == NULL ) { printf("Out of memory"); exit(EXIT_FAILU RE);; } while (isspace(chtext )) chtext = getc(finc);
When you reached the end of the file (and you can't detect it with
'chtext' being a char) you just created an infinite loop because
EOF is typically (int) -1. If you implicitely cast it to a char
'chtext' is going to be a (char) -1 (or perhaps something else,
e.g. a 255 if on your system chars are unsigned), at least it
usually isn't going to be a white-space character.
j=0; while (chtext != EOF && isspace(chtext) == 0) { inc_word[j++] = chtext; chtext = getc(finc); }
inc_word[j] = '\0';
Unless you are lucky you will end up with a sequence of more than
24 non-whitespace characters and write past the end of the memory
you allocated. In this case literally everything can happen. So
*do* the checks or use a different language where you can't make
these kinds of mistakes (you should think of using a lexer like
lex or flex for these kinds of tasks anyway).
// printf("string are %s\n", inc_word); if (strcmp(inc_wor d, "texture") == 0 && finish == 'f') { while (isspace(chtext )) chtext = getc(finc); n=0; chtext = getc(finc); while ( chtext != '}' ) { texture[m][n++] = chtext;
And here is the same problem: if you're unlucky enough there are
going to be more than MAX_WORD_LEN characters not being '}' and
you end up with writing over the end of texture[m] (and this looks
like reading in a povray file where e.g. additional white-space
characters are syntactically correct). It just takes a very small
bit of care to avoid this, so why don't you just do it?
chtext = getc(finc); } texture[m][n] = '\0'; /* printf(" texture = %s ", texture[m]);*/ m++;
How can you be that sure that you won't get more than 2599 of
these texture strings? Checking is cheap and simple and avoids
lots of unnecessary grief that comes from invoking undefined
behavior.
finish = 't'; } free(inc_word); }
fclose(finc);
return 0; }
Regards, Jens
--
_ _____ _____
| ||_ _||_ _| Je***********@p hysik.fu-berlin.de
_ | | | | | |
| |_| | | | | | http://www.physik.fu-berlin.de/~toerring
\___/ens|_|homs|_|oe rring
On Wed, 06 Aug 2003 21:57:48 GMT, Artie Gold <ar*******@aust in.rr.com>
wrote: Marcus Jacobs wrote:
snip printf("Enter POV include file name ( *.inc ) : "); fgets(finc_name , 80, stdin);
You haven't stripped the newline ('\n') character. *strstr(finc_na me, "\n") = '\0';
You need to make sure that fgets inserted a \n before you strip it.
strstr can return NULL.
snip
<<Remove the del for email>>
On 6 Aug 2003 14:23:58 -0700, ma*******@hotma il.com (Marcus Jacobs)
wrote: Thanks everyone for all of your suggestions. I have revised some of the source code (primarily getting rid of gets()). I have also included here the definition of type WORD for everyone to view. The other stuff I'll get to when I get this working properly. BTW, I am compiling this with gcc included with MinGW. Similar issue arose when I compiled this using MS Visual Studio. For starters, the problem that I am encountering now is that even though fname_inc does list itself as the filename given from fgets(), for some reason when I attempt to fopen() a file with that name, it comes up NULL. Why does this happen. In my case when I attempt to run the program I use a file named "all.inc". As part of my debugging, I manually initialize the value of fname_inc to "all.inc". When I do this, fopen() does work properly. I can not understand why this program does not like to use any of the data that is to be entered. As for the original problem with fclose(), while debugging the program it seems to me that this isn't what is causing the proble. The program works it way to the end and then at the end the following error message is displayed:
"The instruction at "0x77fcb03d " reference memory at "0x00000000 ". The memory could not be "written"."
I, for the life of me, can not figure out what is causing this. I do like to post my questions to this ng but I do try very hard to fix these problems myself before coming to everyone else. I am stuck. Here is the source as I have revised it. If it would be helpful, I can post a portion of the file "all.inc" to this ng such that someone may test out the code. It is only an ASCII text file.
Thanks to everyone for your help.
Marcus
#include <stdio.h> #include <stdlib.h> #include <ctype.h> #include <string.h> #ifndef NUMTYPES_H #define NUMTYPES_H
#define MAX_WORD_LEN 20 typedef char Word[MAX_WORD_LEN+1] ;
#endif
typedef struct { Word x,r,g,b; } colorinfo;
FILE *finc, *fpov, *frad; char ch, frad_name[80], finc_name[80], fpov_name[80] , is_num; char *pov_word; char * finame; char chpov , colorend='f'; colorinfo color; Word texture[2600];
void reads_triangle( Word pov_num); void reads_smoothtri angle(Word pov_num); void reads_inc(void) ; void reads_color(voi d); void reads_texture(v oid); int main(void) { int m=1, n, j; char chtext, finish; char *inc_word; int j2;
printf("Enter POV include file name ( *.inc ) : "); fgets(finc_name , 80, stdin);
If the data input by the user is less than 79 characters, fgets will
include the \n (corresponding to the enter key) in the string. You
need something like
if ((inc_word = strchr(finc_nam e, '\n')) == NULL)
/* error logic - you do not have the complete file name */
else
*inc_word = '\0';
printf("%s", finc_name); printf("\n");
finc=fopen(finc _name, "r");
if (finc==NULL) { printf(" Can't open %s\n", finc);
This should be finc_name. finc is NULL and attempting to print what
it points to invokes undefined behavior which may be the cause of your
problem.
exit(EXIT_FAILU RE); }
chtext = getc(finc);
getc returns an int for a reason. You should respect that. It is
entirely possible that EOF will not fit in a char.
snip
<<Remove the del for email>>
On Wed, 06 Aug 2003 23:55:40 +0000, Jens.Toerrin wrote: Marcus Jacobs <ma*******@hotm ail.com> wrote:
Beside what Artie has been already told you (about removing the '\n' from the input) there are still several things that won't work:
#include <stdio.h> #include <stdlib.h> #include <ctype.h> #include <string.h> #ifndef NUMTYPES_H #define NUMTYPES_H
#define MAX_WORD_LEN 20 typedef char Word[MAX_WORD_LEN+1] ;
#endif
Where's the #if (or similar) for this #endif?
Right below #include <string.h>.
--
Freenet distribution not available
For every complex problem, there is a solution that is simple, neat, and wrong.
-- H. L. Mencken
On Wed, 06 Aug 2003 11:37:02 +0200, Andre Hinrichs wrote: Marcus Jacobs wrote:
[...] { printf(" Can't open %s\n", finc); [...]
In addition to the other hints already given you probably want to use { printf(" Can't open %s\n", finc_name);
Additionally most times it's wise to write this information to standard error: { fprintf(stderr, " Can't open %s\n", finc_name);
Better yet:
{
const static char *prefix = "Can't open ";
char *buf = malloc(strlen(p refix) + strlen(finc_nam e) + 1);
sprintf(buf, "%s%s", prefix, finc_name);
perror(buf); /* Give more details on why the error occured */
free(buf);
--
Freenet distribution not available
They also surf who only stand on waves. This thread has been closed and replies have been disabled. Please start a new discussion. Similar topics |
by: Edd Dawson |
last post by:
Hi. I have a strange problem involving the passing of command line
arguments to a C program I'm writing. I tried posting this in
comp.programming yesterday but someone kindly suggested that I'd have
better luck here. So here goes!
My program ignores any command line arguments, or at least it's
supposed to. However, when I pass any command line arguments to the
program, the behaviour of one of the functions changes mysteriously. I
have...
|
by: leonecla |
last post by:
Hi everybody,
I'm facing a very very strange problem with a very very simple C
program...
My goal should be to write to a binary file some numbers (integers),
each one represented as a sequence of 32 bit.
I made this stupid trial code:
---------------------------------------------
FILE *fout;
|
by: ferbar |
last post by:
Hello all,
This may sound pretty basic stuff.. but I'm working on a socket example
whose client seems to work fine, but the server doesn't send to the
client the expected result. The problem is that I want to trace what
the server socket is doing, but I'm unable to see any of my fprintf or
printf stuff.
Please take a look to the example:
|
by: lihua |
last post by:
Hi, Group!
I got one question here:
We all know that fclose() must be called after file operations to
avoid unexpected errors.But there are really cases when you forget to
do that!Just
like what happens in memory operations, everyone knows the importance
of
freeing the allocated memory, but there do have memory leaks from time
to
|
by: aldrin |
last post by:
I'm trying to run this code under windows xp sp2 using codeblocks v1.0
compiler with great difficulty.There is no problem with running this
under KDevelop in linux. Any help would be greatly appreciated.
Enter an interesting string.
Too many cooks spoil the broth
Error opening C:\myfile.txt for writing. Program termnated.
This application has requested the Runtime to terminate it in an
unusual way.
| |
by: kalyan.listsubs |
last post by:
Hi,
I have the below program which will simply write struct employee to a
file (binary mode). The problem here is empid is writen to the file but
the name (char name) is not written. I am using cygwin (gcc
compiler) and use the following commands to compile & run respectively:
gcc -o emp emp.c
../emp write -> this will create a file emp.out and write employee (Adam
|
by: David Mathog |
last post by:
A program of mine writes to a tape unit. Output can be either through
stdout or through a file opened with fopen(). When all the data is
transferred to tape the program needs to close the output stream so that
the tape driver will write a filemark on the tape. Otherwise multiple
clumps of data saved to tape would all appear to be one big file on the
tape.
When the tape unit device was explicitly opened with fopen()
that's possible:...
|
by: revolter00 |
last post by:
hi all, this is a piece of code from the program that i`m currently working on..
.
.
#define SIZE 10
.
.
.
int opt, NumARR, L, MaxINT, sum=0, input_int;
|
by: xiao |
last post by:
It always dumped when I tried to run it... But it compiles OK. What I
want to do is to do a test:
Read information from a .dat file and then write it to another file.
The original DAT file is like this : (very simple..........)
010001010110001101010101010101010101010101
#include<stdio.h>
|
by: marktang |
last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However, people are often confused as to whether an ONU can Work As a Router. In this blog post, we’ll explore What is ONU, What Is Router, ONU & Router’s main usage, and What is the difference between ONU and Router. Let’s take a closer look !
Part I. Meaning of...
|
by: Hystou |
last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it.
First, let's disable language synchronization. With a Microsoft account, language settings sync across devices. To prevent any complications,...
| |
by: jinu1996 |
last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth.
The Art of Business Website Design
Your website is...
|
by: Hystou |
last post by:
Overview:
Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For most users, this new feature is actually very convenient. If you want to control the update process,...
|
by: tracyyun |
last post by:
Dear forum friends,
With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
|
by: agi2029 |
last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing, and deployment—without human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then launch it, all on its own....
Now, this would greatly impact the work of software developers. The idea...
|
by: conductexam |
last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one.
At the time of converting from word file to html my equations which are in the word document file was convert into image.
Globals.ThisAddIn.Application.ActiveDocument.Select();...
|
by: TSSRALBI |
last post by:
Hello
I'm a network technician in training and I need your help.
I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs.
The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols.
I succeeded, with both firewalls in the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...
| |
by: adsilva |
last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
| |