473,854 Members | 1,846 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Is C99 the final C?

I was just thinking about this, specifically wondering if there's any
features that the C specification currently lacks, and which may be
included in some future standardization .

Of course, I speak only of features in the spirit of C; something like
object-orientation, though a nice feature, does not belong in C.
Something like being able to #define a #define would be very handy,
though, e.g:

#define DECLARE_FOO(bar ) #define FOO_bar_SOMETHI NG \
#define FOO_bar_SOMETHI NG_ELSE

I'm not sure whether the features of cpp are even included in the C
standard though (and GCC has definitely taken quite a nonstandard approach
with regards to certain token expansions and whatnot), but that's one area
of improvement I see.

I would also like to see something along the lines of C++ templating,
except without the really kludgy implementation that the C++ folks decided
to go to ( and without the OOP ).

.... Mike pauses for the sound of a thousand *plonks*

Templates save a lot of time when it comes to commonly-used data
structures, and as they are entirely implemented at compile-time and don't
include, by their definition, OOP (although they can be well suited to
it), I think they would be a nice addition and in the spirit of C.

Your thoughts? I'm sure there's some vitriol coming my way but I'm
prepared 8)

--
Mike's Patented Blocklist; compile with gcc:

i=0;o(a){printf ("%u",i>>8*a&25 5);if(a){printf (".");o(--a);}}
main(){do{o(3); puts("");}while (++i);}

Nov 13 '05
193 9685
nrk
Paul Hsieh wrote:
aj*@nospam.andr ew.cmu.edu says...
[...] You have implied elsethread that you think this solution a
"non-solution" (or perhaps I'm again imagining sarcasm where
none was intended). If that's the case, would you mind explaining
what you think is wrong with getc() and fread() on binary streams?


getc() only reads a character (i.e., it reads too little), and fread()
only
reads a buffer and ignores line terminators (i.e., it reads too much).
That
leaves writing a loop over getc() as the only solution. But then one has
to wonder, why was fgets() included with its specific semantics, if its
really just a subset of a more general solution?

fgets() is the only string function which specifically ignores '\0'. A
minor change in its semantics would have made it more consistent with the
rest of the C language without any restriction of the file mode (return
the length, terminate on either '\0' or '\n' but always add an additional
'\0' at the end) which would have made it a *superset* of what we have
today without any strange conditions or anomolies.

The value of a library function should be how much it *saves* the
programmer
from having to code themselves. In the context of the C language, you
might also have other criteria like being minimal, but I don't see that it
would be significantly larger to have implemented fgets with the semantics
I suggest.

--
Paul Hsieh
http://www.pobox.com/~qed/userInput.html


The problem can be overcome by filling the buffer passed to fgets with any
value other than 0, before passing it to fgets. Now you have a perfectly
fine way of finding out exactly how much of the buffer fgets wrote into.
Of course, judging by your rants so far, you'd be unsatisfied with this
solution as well. As they say where I come from, no point in trying to
wake up one who's pretending to be asleep.

-nrk.
Nov 14 '05 #181
In article <MP************ ************@ne ws.sf.sbcglobal .net>,
qe*@pobox.com says...
There are no C99 compilers, compliant or otherwise.


What would this mysterious thing be then?
http://www.comeaucomputing.com/
Furthermore, if it's not compliant, is it not then "otherwise" ?

What a bizarre statement. gcc -std=c99 sure seems like it might
fall into that otherwise category, but much less so.

The Intel C compiler claims to also support C99, using the same
command line syntax (-std=c99).

Specifically:

[quote]
The following C99 features are supported in this version of the Intel C++
Compiler when using the -c99[-] option:

Restricted pointers (restrict keyword, available with -restrict). See Note
below.
Variable-length Arrays
Flexible array members
Complex number support (_Complex keyword)
Hexadecimal floating-point constants
Compound literals
Designated initializers
Mixed declarations and code
Macros with a variable number of arguments
Inline functions (inline keyword)
Boolean type (_Bool keyword)

These features are not supported:

#pragma STDC FP_CONTRACT
#pragma STDC FENV_ACCESS
#pragma STDC CX_LIMITED_RANG E
long double (128-bit representations )

[end quote]
The Sun Forte Developer 7 C compiler appears to support some, but
certainly not all of C99. I guess that's another otherwise. Similar
comments about the Sun ONE Studio 8 compiler collection.

The Digital Mars C compiler claims to be pretty close, except for:
"While Digital Mars C strives to be fully compatible with C99, some
features remain unimplemented, for example:
New struct member initializer syntax
tgmath.h
_Pragma
"

The Cray C compiler supports C99 with the -h c99 option, including
VLA's and restricted pointers.

HP claims C99 support for both HP-UX and OpenVMS compilers.

The Acmet C cross-compilers claim C99 support.

The Compaq UPC Tru64 C compiler supports C99, including VLA's.

The Pelles C compiler for Windows and Pocket PC claims C99 support.

The OdinMP OpenMP C compiler is apparently supporting some, but not all
C99 feaures.

The "Jazillian" C to Java converter supports all C99 conforming code.

The Dignus C compiler for Z/Architecture (24, 31, 64-bit) supports C99
features.

Care to reconsider that incredibly broad statement?

--
Randy Howard _o
2reply remove FOOBAR \<,
_______________ _______()/ ()_____________ _______________ _______________ ___
SCO Spam-magnet: po********@sco. com
Nov 14 '05 #182
qe*@pobox.com (Paul Hsieh) wrote:
<snip>
fgets() is the only string function which specifically ignores '\0'. A minor
change in its semantics would have made it more consistent with the rest of the
C language without any restriction of the file mode (return the length,
terminate on either '\0' or '\n' but always add an additional '\0' at the end)
which would have made it a *superset* of what we have today without any strange
conditions or anomolies.
fgets is *not* a string function, it's an input function. fgets is
used to read lines of characters from text streams. fgets is not used
to read C strings from binary streams. The only valid line terminator
in C text streams is '\n'. Everything else is to be considered part
of the line. For this reason fgets takes no special action on '\0'
characters, because they have no special meaning in text streams. [1]

IMNSHO a file containing '\0's is not a text file but a binary file,
and should be treated as such. If your text files contain spurious
NUL characters your files are broken, and you cannot blame fgets for
this.

Please reconsider the restrictive definition of text streams in the
standard:

ISO/IEC 9899:1999 7.19.2 Streams
2 A text stream is an ordered sequence of characters composed into
lines, each line consisting of zero or more characters plus a
terminating new-line character. [...] Data read in from a text
stream will necessarily compare equal to the data that were
earlier written out to that stream only if: the data consist
only of printing characters and the control characters horizontal
tab and new-line; no new-line character is immediately preceded by
space characters; and the last character is a new-line character.
Whether space characters that are written out immediately before
a new-line character appear when read in is implementation-
defined.

If you want a way to transparently write and read data, use ...
<drum-roll> ... binary streams and the corresponding functions
<applause>.
The value of a library function should be how much it *saves* the programmer
from having to code themselves.
And fgets has done a good job in the past, and I suspect that won't
change soon. Just use it for the purpose it's designed for and
everything's fine. For other purposes use other suitable library
functions. And if there is none available, write one.
In the context of the C language, you might
also have other criteria like being minimal, but I don't see that it would be
significantly larger to have implemented fgets with the semantics I suggest.


That's not the point. The point is that if fgets had the semantics
you propose, it would no longer be the library function for reading
lines from text streams, and a need for the_real_fgets( ) would arise.

It's not so damn hard to write five lines of C code to handle broken
text files, put it in your toolbox and be happy for the rest of your
life.
[1] I could well live with a fgets implementation that invokes
undefined behaviour if it hits a NUL chartacter in a text
stream.
Regards
--
Irrwahn Grausewitz (ir*******@free net.de)
welcome to clc : http://www.angelfire.com/ms3/bchambl...me_to_clc.html
clc faq-list : http://www.eskimo.com/~scs/C-faq/top.html
acllc-c++ faq : http://www.contrib.andrew.cmu.edu/~a...acllc-c++.html
Nov 14 '05 #183
Paul Hsieh wrote:
fgets() is the only string function which specifically ignores '\0'.


fgets is a character input/output function.
The string functions are the ones which are prototyped in string.h

--
pete
Nov 14 '05 #184

"CBFalconer " <cb********@yah oo.com> wrote in message
news:3F******** *******@yahoo.c om...
"Arthur J. O'Dwyer" wrote:
On Fri, 12 Dec 2003, Sidney Cadot wrote:
... snip ...
I already established that if you cannot portably get mutexes in
C, I will concede. This very specific point of contention is
*not* decided yet, in this discussion.


I agree with Paul that this is a very basic and very obvious fact
that shouldn't be too hard to grasp. If you've done any
thread-based programming (nothing complicated, just anything that
requires a shared resource), you've noticed that every time two
threads want access to the same bit of memory at the same time,
you need some kind of mutex to block out one of the threads while
the other one does its thing, and then block out the other one
while the first one does *its* thing.

Mutexes cannot be expressed in standard C, because standard C has
no way of specifying "this block of data behaves like a mutex."
I'm sorry if that sounds circular, but it's hard for me to
describe the effect of a mutex except by jargon. Suffice it to
say that you can feel free to post snippets illustrating anything
you think qualifies as a mutex algorithm written in standard C,
and I will be only too glad to poke holes in it.


Once more I am trying to cut this monstrous thread up into
identifiable sub-threads, dealing with single subjects, and with
reasonably sized articles and subjects :-)

Conceding the chicken and egg nature of the problem, all is solved
once we can provide exclusive access to something, which in turn
allows setting and clearing of flags for whatever scheme we
prefer. The one thing that C provides is atomic access to
objects. It seems to me that this suffices to implement Dekkers
algorithm, and thus implement critical sections. The solution may
not be efficient, but it is a solution, IMO.


The standard provides for atomic access through use of the type sig_atomic_t
in signal.h, which is "the (possibly volatile-qualified) integer type of an
object
that can be accessed as an atomic entity, even in the presence of
asynchronous
interrupts." (ISO/IEC 9899:1999, clause 7.14, p. 245.) However, the
standard also states that "[w]hat constitutes an access to an object that
has
volatile-qualified type is implementation-defined." (Ibid., clause 6.7.3,
p.
109.)

Read access on such an object is usually straightforward and is normally
done
in one atomic operation if the memory is on-chip. Write access, however,
may or may not be done in one operation. In either case, access is
hardware-
specific.

In short, there is no portable means of providing a mutex, at least not one
that
is completely reliable across all platforms.

Regards,

Travis
Nov 14 '05 #185
In <MP************ ************@ne ws.megapathdsl. net> Randy Howard <ra**********@F OOmegapathdslBA R.net> writes:
In article <MP************ ************@ne ws.sf.sbcglobal .net>,
qe*@pobox.co m says...
There are no C99 compilers, compliant or otherwise.
What would this mysterious thing be then?
http://www.comeaucomputing.com/
Furthermore, if it's not compliant, is it not then "otherwise" ?


It's neither, because it's not what people usually mean by compiler.
Its output is non-portable C89 code (C89 + the extensions of the target
C89 compiler).
What a bizarre statement. gcc -std=c99 sure seems like it might
fall into that otherwise category, but much less so.
The "otherwise" category is meaningless, because *anything* qualifies as
a non-compliant C99 compiler (except the compliant C99 compilers, of
course).
The Intel C compiler claims to also support C99, using the same
command line syntax (-std=c99).
The same command line syntax, but with different semantics. Nice, isn't
it?
Specifically :

[quote]
The following C99 features are supported in this version of the Intel C++
Compiler when using the -c99[-] option:

Restricted pointers (restrict keyword, available with -restrict). See Note
below.
Variable-length Arrays
Flexible array members
Complex number support (_Complex keyword)
Hexadecimal floating-point constants
Compound literals
Designated initializers
Mixed declarations and code
Macros with a variable number of arguments
Inline functions (inline keyword)
Boolean type (_Bool keyword)

These features are not supported:

#pragma STDC FP_CONTRACT
#pragma STDC FENV_ACCESS
#pragma STDC CX_LIMITED_RANG E
long double (128-bit representations )

[end quote]
So, it's not a conforming C99 compiler.
The Sun Forte Developer 7 C compiler appears to support some, but
certainly not all of C99. I guess that's another otherwise. Similar
comments about the Sun ONE Studio 8 compiler collection.

The Digital Mars C compiler claims to be pretty close, except for:
"While Digital Mars C strives to be fully compatible with C99, some
features remain unimplemented, for example:
New struct member initializer syntax
tgmath.h
_Pragma
"

The Cray C compiler supports C99 with the -h c99 option, including
VLA's and restricted pointers.

HP claims C99 support for both HP-UX and OpenVMS compilers.

The Acmet C cross-compilers claim C99 support.

The Compaq UPC Tru64 C compiler supports C99, including VLA's. ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^
The Pelles C compiler for Windows and Pocket PC claims C99 support.

The OdinMP OpenMP C compiler is apparently supporting some, but not all
C99 feaures.

The "Jazillian" C to Java converter supports all C99 conforming code.

The Dignus C compiler for Z/Architecture (24, 31, 64-bit) supports C99
features.

Care to reconsider that incredibly broad statement?


Remove the "otherwise" , which renders the statement trivially false and
see how many *conforming* C99 compilers you can find. After that, start
considering the *conforming* C99 library issue.

Note that in vendor speak, C99 support is not the same as C99 conformance.
The best example is the underlined text above.

Dan
--
Dan Pop
DESY Zeuthen, RZ group
Email: Da*****@ifh.de
Nov 14 '05 #186
On Sat, 13 Dec 2003, Paul Hsieh wrote:
au***@axis.com says...

I'm not sure what you mean when you say "fgets() ignores '\0' that are
consumed." Can you elaborate on this, please?


1) Write a program that takes input from stdin line by line using fgets(), and
accumulates the result into an MD5 hash.

2) Now redirect an arbitrary file into it (assuming UNIX or Windows-like
redirection facilities.)

Ok, first step, of course, is to reopen the stdin as binary. (If all this
seems hoakey to you, just open any file in which someone previous performed an
fwrite with some number of '\0' s in it instead.) But after that you discover
that its impossible to know for sure exactly how much data each fgets()
operations reads!

- strlen() is just plain wrong because earlier encountered '\0's don't
correspond to the where the first '\n' or bufferlength-1 is encountered.
- scanning for '\n' is insufficient on the very last line of the file because
it might really have early terminated by an earlier '\0'

In short, fgets() does not leave you with a deterministic way of knowing how
much data was really read unless you outlaw '\0' from the input stream.


OK, then tell me what's wrong with the program below. Give an example of a
specific sequence of input characters (containing null characters) that
will cause the program to incorrectly report the number of characters read
by fgets().

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int
main(void)
{
char buf[100];
size_t nchars;

while (1) {
memset(buf, 1, sizeof buf);

if (!fgets(buf, sizeof buf, stdin))
exit(0);

for (nchars = sizeof buf - 1; buf[nchars] != '\0'; nchars--)
;

printf("%d characters read...\n", (int)nchars);
}
}

--
au***@axis.com
Nov 14 '05 #187
Chris Hills <ch***@phaedsys .org> wrote in message news:<zi******* *******@phaedsy s.demon.co.uk>. ..
In article <3F************ ***@saicmodis.c om>, James Kuyper
<ku****@saicmod is.com> writes
No - I think that &&& and ||| would be so rarely used that their
meanings would become trivia questions.

see Rule 36 of the MISTRAY-C C coding standard at
Http://mistray-c.phaedsys.org

It is the antidote to MISRA-C and should raise a smile or three.

I am looking for some code examples to illustrate some of the rules.

regards
Chris

/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
\/\/\/\/\ Chris Hills Staffs England /\/\/\/\/\
/\/\/ ch***@phaedsys. org www.phaedsys.org \/\/
\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/

Just read the "MISTRAY-C C coding standard". Loving your work there.

I think the right way to do things lies somewhere between MISRA and
MISTRAY. MISRA is a very good example of diktats generated by
'staffers' (as a Dilbert reader would understand) who spend time
trying to lecture those actually on the front lines on how to do their
jobs. One wonders if the people responsible for MISRA-C have done any
real projects for years.

But of course it's happily kept alive by those who profit from MISRA-C
"training courses", "compliance checking tools" and the like.
Nov 14 '05 #188
In article <95************ **************@ posting.google. com>, Simon J
Fisher <sf*****@cwcom. net> writes
Chris Hills <ch***@phaedsys .org> wrote in message news:<zijeLOFEb 2y$EAhr@phaedsy
s.demon.co.uk> ...
In article <3F************ ***@saicmodis.c om>, James Kuyper
<ku****@saicmod is.com> writes
>No - I think that &&& and ||| would be so rarely used that their
>meanings would become trivia questions. see Rule 36 of the MISTRAY-C C coding standard at
Http://mistray-c.phaedsys.org
It is the antidote to MISRA-C and should raise a smile or three.
I am looking for some code examples to illustrate some of the rules.

Just read the "MISTRAY-C C coding standard". Loving your work there.


Thanks. That was a first pass. If any one has any examples of better
wording or source code examples let me know.
I think the right way to do things lies somewhere between MISRA and
MISTRAY. MISRA is a very good example of diktats generated by
'staffers' (as a Dilbert reader would understand) who spend time
trying to lecture those actually on the front lines on how to do their
jobs.
AFAIK ALL of the current MISRA-C team have mission/safety critical code
running out there somewhere.... I am not sure about all the first team.
I will have to research this and put a MISRA-C history in MISRA-C2
One wonders if the people responsible for MISRA-C have done any
real projects for years.
Yes. Most of us, in the the MISRA-C2 team, have/are writing code.
Mainly safety/mission critical but not all in the automotive world.
But of course it's happily kept alive by those who profit from MISRA-C
"training courses", AFAIk the people who do the MISRA-C training are not involved with
development of MISRA-C.
"compliance checking tools" and the like.

They have become involved with the second edition of MISRA-C because of
the anomalies, inconsistencies etc of the first version.

MISRA-C2 is nearing completion.

IT is still based on 9899:1990 as there are no commercial embedded
compilers that are fully compliant to C99.

It has been reviewed not only by the usual MIRA circuit but has been
reviewed by the US SAE, the Japanese SAE, members of the ISO- committee,
most of the major C code testing tool vendors (including PC-Lint).

I hope that MISTA-C2 will be available at the end of Q1 2004 with
support from the checking tool vendors by end Q3.

The next area of work is likely to be a test suite and related items.
Also with any luck comp.lang.c.mis ra Note it will not be comp.std.c
because misra-c is NOT a language standard. It is a coding guideline.

Then I suppose it will be on to MISRA-C3 Though the team have said they
want a 6 month break first :-)
Regards
Chris



/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
\/\/\/\/\ Chris Hills Staffs England /\/\/\/\/\
/\/\/ ch***@phaedsys. org www.phaedsys.org \/\/
\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/
Nov 14 '05 #189
"Chris Hills" <ch***@phaedsys .org> wrote in message
news:j+******** ******@phaedsys .demon.co.uk...
MISRA-C2 is nearing completion.
IT is still based on 9899:1990 as there are no commercial embedded
compilers that are fully compliant to C99.


As I recall, the original MISRA-C guidelines basically amounted to selecting
a subset of Standard C. That subset might as well be of C99+TC1, in fact
would be better if based on the International Standard rather than on some
obsolete document.
Nov 14 '05 #190

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

1
3455
by: Anthony Martin | last post by:
I've been reading the Java Language Specification, and in Chapter 16 there's an interesting topic called Definite Assignment. http://tinyurl.com/3fqk8 I'm wondering about the idea of "Deferred Final Automatic Variables" like the following: void unflow(boolean flag) { final int k;
14
23152
by: Medi Montaseri | last post by:
Hi, I think my problem is indeed "how to implement something like java's final in C++" The long version.... I have an abstract base class which is inherited by several concrete classes. I have a group of methods that I'd like to implement in the base class
48
8728
by: David J Patrick | last post by:
I'm trying to rewrite the CSS used in http://s92415866.onlinehome.us/files/ScreenplayCSSv2.html. using the w3.org paged media standards as described at http://www.w3.org/TR/REC-CSS2/page.html The ScreenplayCSS is flawed, for several reasons; -overuse of <div id= tags -doesn't scale screen resolutions (convert from px to in, pt ?) -no media="print" (how much coule be shared between "screen" & "print") -no automatic page breaks (with...
10
5126
by: Bezalel Bareli | last post by:
I know I have seen some threads on the subject long time ago and it was using a virtual base class ... in short, what is the nicest way to implement the Java final class in c++ Thanks.
14
1780
by: My4thPersonality | last post by:
Has the fact that both Java and C# are garbage collected, and C++ in not, anything to do with the fact that there is no language item to prevent a class from being inherired from? I once read that Java and C# implement this feature for preformance, but the C++ creators said it was not worse the effort. So because Java and C# are garbage collected, in their case is it worse the effort? What is the connection?
1
8625
by: silverburgh.meryl | last post by:
I am trying to convert this code from java to c++: public final class Type { public static final int DEFAULT = 1; private static int index = 2; public static final int COLUMN1 = (int) Math.pow(2, index++); public static final int COLUMN2 = (int) Math.pow(2, index++); public static final int COLUMN3 = (int) Math.pow(2, index++); public static final int COLUMN4 = (int) Math.pow(2, index++);
5
1403
by: Anthony Baxter | last post by:
On behalf of the Python development team and the Python community, I'm happy to announce the release of Python 2.4.3 (final). Python 2.4.3 is a bug-fix release. See the release notes at the website (also available as Misc/NEWS in the source distribution) for details of the more than 50 bugs squished in this release, including a number found by the Coverity Scan project. Assuming no major bugs pop up, the next release of Python will be...
14
3002
by: Rahul | last post by:
Hi Everyone, I was searching for final class in c++, and i came across few links which suggests to have the constructor of the, to be final class, as private so that any derived class's constructors can't access the same. class C { private:
1
1709
by: Rajib | last post by:
Not that this serves any real purpose, but gcc allows me to do some hack like this: class hide_A { public: class A { public: virtual int final() { return 42; } };
0
9903
marktang
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...
0
9752
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,...
0
11041
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. Here is my compilation command: g++-12 -std=c++20 -Wnarrowing bit_field.cpp Here is the code in...
0
10692
jinu1996
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...
0
9525
agi2029
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...
1
7921
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms. Adolph will...
0
5753
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...
1
4565
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system
3
3193
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating effective websites that not only look great but also perform exceptionally well. In this comprehensive...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.