473,404 Members | 2,187 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,404 software developers and data experts.

How to send dynamic vector?

Hello Group,

int Msg[size];
MPI_Send(Msg, size, MPI_INT, DEST, TAG, MPI_COMM_WORLD);
this is working fine.

But how to send Msg declared like this:
int *Msg=(int*)malloc(sizeof(int)*size);

It gives me
p4_error: interrupt SIGSEGV: 11
not_send: could not write to fd=4, errno = 32

Thanks!

Oct 21 '07 #1
14 4993
dopiotr wrote:
Hello Group,

int Msg[size];
MPI_Send(Msg, size, MPI_INT, DEST, TAG, MPI_COMM_WORLD);
this is working fine.

But how to send Msg declared like this:
int *Msg=(int*)malloc(sizeof(int)*size);

It gives me
p4_error: interrupt SIGSEGV: 11
not_send: could not write to fd=4, errno = 32
Without further code I can't really tell what your problem is. It may
not be a C problem but an incorrect use of MPI functions. You might do
better to ask in a forum dedicated to your MPI implementation.

<http://en.wikipedia.org/wiki/Message_Passing_Interface>
<http://www.mpi-forum.org/docs/>
<http://www.open-mpi.org/>
<http://www.personal.leeds.ac.uk/~bgy1mm/MPITutorial/MPIHome.html>

Oct 21 '07 #2
On Oct 22, 12:45 am, dopiotr <nos...@nospam.invalidwrote:
Hello Group,

int Msg[size];
MPI_Send(Msg, size, MPI_INT, DEST, TAG, MPI_COMM_WORLD);
this is working fine.

But how to send Msg declared like this:
int *Msg=(int*)malloc(sizeof(int)*size);
Did u check the return value of malloc?
It might be NULL, due to failed memory allocation.

Oct 21 '07 #3
On 21 Oct 2007 at 19:56, santosh wrote:
dopiotr wrote:
>Hello Group,

int Msg[size];
MPI_Send(Msg, size, MPI_INT, DEST, TAG, MPI_COMM_WORLD);
this is working fine.

But how to send Msg declared like this:
int *Msg=(int*)malloc(sizeof(int)*size);

It gives me
p4_error: interrupt SIGSEGV: 11
not_send: could not write to fd=4, errno = 32

Without further code I can't really tell what your problem is. It may
not be a C problem but an incorrect use of MPI functions. You might do
better to ask in a forum dedicated to your MPI implementation.

<http://en.wikipedia.org/wiki/Message_Passing_Interface>
<http://www.mpi-forum.org/docs/>
<http://www.open-mpi.org/>
<http://www.personal.leeds.ac.uk/~bgy1mm/MPITutorial/MPIHome.html>
Working wersion:
#include "mpi.h"
#include<stdio.h>
#include<stdlib.h>
uint n_sigm;
float *suma_sigm;

void main(int c, char *v[])
{
int size,rank;
int j;
float *s_tmp;
MPI_Init(&c,&v);
MPI_Comm_size(MPI_COMM_WORLD,&size);
MPI_Comm_rank(MPI_COMM_WORLD,&rank);
n_sigm=1000;

suma_sigm=(float *)malloc(sizeof(float)*n_sigm);
s_tmp=(float *)malloc(sizeof(float)*n_sigm);//difference

if(rank != 0)
{
for(j=0;j<n_sigm;j++)
suma_sigm[j]=rank*1000+j;
}
else
{
for(j=0;j<n_sigm;j++)
s_tmp[j]=0;
}
MPI_Reduce(suma_sigm,s_tmp ,n_sigm,MPI_FLOAT,MPI_SUM,
0,MPI_COMM_WORLD);
if( rank == 0 )
for(j=0;j<n_sigm;j++)
printf("%i %f\n",j,s_tmp[j]);
free(suma_sigm);
free(s_tmp);
MPI_Finalize();
}

Why it is not working:
#include "mpi.h"
#include<stdio.h>
#include<stdlib.h>
uint n_sigm;
float *suma_sigm;
int main(int c, char *v[])
{
int size,rank;
int j;
float *s_tmp;
MPI_Init(&c,&v);
MPI_Comm_size(MPI_COMM_WORLD,&size);
MPI_Comm_rank(MPI_COMM_WORLD,&rank);
n_sigm=1000;

suma_sigm=(float *)malloc(sizeof(float)*n_sigm);

if(rank != 0)
{
for(j=0;j<n_sigm;j++)
suma_sigm[j]=rank*1000+j;
}
else
{
for(j=0;j<n_sigm;j++)
s_tmp[j]=0;
}
s_tmp=(float *)malloc(sizeof(float)*n_sigm);//difference
MPI_Reduce(suma_sigm,s_tmp ,n_sigm,MPI_FLOAT,MPI_SUM,
0,MPI_COMM_WORLD);
if( rank == 0 )
for(j=0;j<n_sigm;j++)
printf("%i %f\n",j,s_tmp[j]);
free(suma_sigm);
free(s_tmp);
MPI_Finalize();
}

And why value of s_tmp[0] & s_tmp[1] is incorrect (in working
version).

Oct 21 '07 #4
dopiotr wrote:
On 21 Oct 2007 at 19:56, santosh wrote:
>dopiotr wrote:
>>Hello Group,

int Msg[size];
MPI_Send(Msg, size, MPI_INT, DEST, TAG, MPI_COMM_WORLD);
this is working fine.

But how to send Msg declared like this:
int *Msg=(int*)malloc(sizeof(int)*size);

It gives me
p4_error: interrupt SIGSEGV: 11
not_send: could not write to fd=4, errno = 32

Without further code I can't really tell what your problem is. It may
not be a C problem but an incorrect use of MPI functions. You might
do better to ask in a forum dedicated to your MPI implementation.

<http://en.wikipedia.org/wiki/Message_Passing_Interface>
<http://www.mpi-forum.org/docs/>
<http://www.open-mpi.org/>
<http://www.personal.leeds.ac.uk/~bgy1mm/MPITutorial/MPIHome.html>

Working wersion:
#include "mpi.h"
#include<stdio.h>
#include<stdlib.h>
uint n_sigm;
float *suma_sigm;

void main(int c, char *v[])
Use int main
{
int size,rank;
int j;
float *s_tmp;
MPI_Init(&c,&v);
MPI_Comm_size(MPI_COMM_WORLD,&size);
MPI_Comm_rank(MPI_COMM_WORLD,&rank);
n_sigm=1000;

suma_sigm=(float *)malloc(sizeof(float)*n_sigm);
s_tmp=(float *)malloc(sizeof(float)*n_sigm);//difference
In C the cast of malloc's return value is not needed. I'd write your
statements as:

suma_sigm = malloc(sizeof *suma_sigm * n_sigm);
s_tmp = malloc(sizeof *s_tmp * n_sigm);

Also be sure to check that malloc actually succeeded.
if(rank != 0)
{
for(j=0;j<n_sigm;j++)
suma_sigm[j]=rank*1000+j;
}
else
{
for(j=0;j<n_sigm;j++)
s_tmp[j]=0;
}
MPI_Reduce(suma_sigm,s_tmp ,n_sigm,MPI_FLOAT,MPI_SUM,
0,MPI_COMM_WORLD);
if( rank == 0 )
for(j=0;j<n_sigm;j++)
printf("%i %f\n",j,s_tmp[j]);
free(suma_sigm);
free(s_tmp);
MPI_Finalize();
Return a value here.
}

Why it is not working:
#include "mpi.h"
#include<stdio.h>
#include<stdlib.h>
uint n_sigm;
float *suma_sigm;
int main(int c, char *v[])
{
int size,rank;
int j;
float *s_tmp;
MPI_Init(&c,&v);
MPI_Comm_size(MPI_COMM_WORLD,&size);
MPI_Comm_rank(MPI_COMM_WORLD,&rank);
n_sigm=1000;

suma_sigm=(float *)malloc(sizeof(float)*n_sigm);

if(rank != 0)
{
for(j=0;j<n_sigm;j++)
suma_sigm[j]=rank*1000+j;
}
else
{
for(j=0;j<n_sigm;j++)
s_tmp[j]=0;
Well, here s_tmp is not yet pointing to any valid memory. You're writing
to memory you don't own or should not be writing to. Initialise s_tmp
to a valid object or an array of objects before using it.
}
s_tmp=(float *)malloc(sizeof(float)*n_sigm);//difference
/Now/ you're doing it, but it's too late, unless rank was not zero.
MPI_Reduce(suma_sigm,s_tmp ,n_sigm,MPI_FLOAT,MPI_SUM,
0,MPI_COMM_WORLD);
if( rank == 0 )
for(j=0;j<n_sigm;j++)
printf("%i %f\n",j,s_tmp[j]);
free(suma_sigm);
free(s_tmp);
MPI_Finalize();
}

And why value of s_tmp[0] & s_tmp[1] is incorrect (in working
version).
How should I know? What value did you expect? The obvious bug waiting to
happen in your second version is the use of the pointer s_tmp without
making it point to anything valid beforehand.
Oct 21 '07 #5
On Oct 21, 1:06 pm, dopiotr <nos...@nospam.invalidwrote:

snip
dopiotr wrote:
Hello Group,
int Msg[size];
MPI_Send(Msg, size, MPI_INT, DEST, TAG, MPI_COMM_WORLD);
this is working fine.
But how to send Msg declared like this:
int *Msg=(int*)malloc(sizeof(int)*size);
It gives me
p4_error: interrupt SIGSEGV: 11
not_send: could not write to fd=4, errno = 32
snip
Working wersion:
This is not a working version. It invokes undefined behavior and you
state it produces incorrect results.
#include "mpi.h"
#include<stdio.h>
#include<stdlib.h>
uint n_sigm;
float *suma_sigm;

void main(int c, char *v[])
main should return int.
{
int size,rank;
int j;
float *s_tmp;
MPI_Init(&c,&v);
MPI_Comm_size(MPI_COMM_WORLD,&size);
MPI_Comm_rank(MPI_COMM_WORLD,&rank);
n_sigm=1000;

suma_sigm=(float *)malloc(sizeof(float)*n_sigm);
Do not cast the return from malloc. It can never help and the only
effect would be to suppress a diagnostic you really want to see if it
applies to your code.
s_tmp=(float *)malloc(sizeof(float)*n_sigm);//difference
You should always check that malloc succeeds.
>
if(rank != 0)
{
for(j=0;j<n_sigm;j++)
suma_sigm[j]=rank*1000+j;
}
else
{
for(j=0;j<n_sigm;j++)
s_tmp[j]=0;
}
At this point, the elements of suma_sigm or s_tmp (but not both) have
been assigned values. The elements of the other array are
indeterminate (uninitialized).
MPI_Reduce(suma_sigm,s_tmp ,n_sigm,MPI_FLOAT,MPI_SUM,
0,MPI_COMM_WORLD);
Since you don't pass rank to this function, how is it supposed to
determine which of the arrays has valid values and which doesn't. Any
attempt by the function to evaluate an indeterminate element will
invoke undefined behavior.
if( rank == 0 )
for(j=0;j<n_sigm;j++)
printf("%i %f\n",j,s_tmp[j]);
free(suma_sigm);
free(s_tmp);
MPI_Finalize();

}

Why it is not working:
#include "mpi.h"
#include<stdio.h>
#include<stdlib.h>
uint n_sigm;
float *suma_sigm;
int main(int c, char *v[])
{
int size,rank;
int j;
float *s_tmp;
MPI_Init(&c,&v);
MPI_Comm_size(MPI_COMM_WORLD,&size);
MPI_Comm_rank(MPI_COMM_WORLD,&rank);
n_sigm=1000;

suma_sigm=(float *)malloc(sizeof(float)*n_sigm);

if(rank != 0)
{
for(j=0;j<n_sigm;j++)
suma_sigm[j]=rank*1000+j;
}
else
{
for(j=0;j<n_sigm;j++)
s_tmp[j]=0;
At this point, s_tmp is still indeterminate; it does not yet point to
any memory you can access. s_tmp[j] does not exist. This invokes
undefined behavior.
}
s_tmp=(float *)malloc(sizeof(float)*n_sigm);//difference
And if the previous undefined behavior were not sufficient, this would
replace the address that s_tmp was pointing to with the address of the
newly allocated memory making all the elements of the array
indeterminate again.
MPI_Reduce(suma_sigm,s_tmp ,n_sigm,MPI_FLOAT,MPI_SUM,
0,MPI_COMM_WORLD);
if( rank == 0 )
for(j=0;j<n_sigm;j++)
printf("%i %f\n",j,s_tmp[j]);
free(suma_sigm);
free(s_tmp);
MPI_Finalize();

}

And why value of s_tmp[0] & s_tmp[1] is incorrect (in working
version).
By definition, a working version would produce correct results. What
is the vlaue of rank when you see these incorrect values? What is the
function MPI_Reduce supposed to do with the two arrays you pass?

Oct 21 '07 #6

"dopiotr" <no****@nospam.invalidwrote in message
Hello Group,

int Msg[size];
MPI_Send(Msg, size, MPI_INT, DEST, TAG, MPI_COMM_WORLD);
this is working fine.

But how to send Msg declared like this:
int *Msg=(int*)malloc(sizeof(int)*size);

It gives me
p4_error: interrupt SIGSEGV: 11
not_send: could not write to fd=4, errno = 32
Should be fine. If the call sends a static array it should work exactly the
same way with a dynamic buffer allocated with malloc(). This is a general
feature of C functions, not just MPI.

However you have to know the message length, and allocate another buffer, to
receive the message at the other end.

--
Free games and programming goodies.
http://www.personal.leeds.ac.uk/~bgy1mm
Oct 21 '07 #7
dopiotr wrote:
Hello Group,

int Msg[size];
MPI_Send(Msg, size, MPI_INT, DEST, TAG, MPI_COMM_WORLD);
this is working fine.

But how to send Msg declared like this:
int *Msg=(int*)malloc(sizeof(int)*size);
Have you included <stdlib.h>? We recommend dropping the cast, and write
this:

int *Msg = malloc(sizeof(int)*size);
It gives me
p4_error: interrupt SIGSEGV: 11
not_send: could not write to fd=4, errno = 32
MPI related questions are off-topic here, try

comp.parallel.mpi
--
Tor <torust [at] online [dot] no>

"Technical skill is mastery of complexity, while creativity is mastery
of simplicity"
Oct 21 '07 #8
Tor Rustad said:
dopiotr wrote:
>int *Msg=(int*)malloc(sizeof(int)*size);

Have you included <stdlib.h>? We recommend dropping the cast, and write
this:

int *Msg = malloc(sizeof(int)*size);
Who's this "we"? Dropping the cast, sure, but repeating the type? Blech.

--
Richard Heathfield <http://www.cpax.org.uk>
Email: -http://www. +rjh@
Google users: <http://www.cpax.org.uk/prg/writings/googly.php>
"Usenet is a strange place" - dmr 29 July 1999
Oct 21 '07 #9
CryptiqueGuy <SR**********@gmail.comwrites:
On Oct 22, 12:45 am, dopiotr <nos...@nospam.invalidwrote:
>Hello Group,

int Msg[size];
MPI_Send(Msg, size, MPI_INT, DEST, TAG, MPI_COMM_WORLD);
this is working fine.

But how to send Msg declared like this:
int *Msg=(int*)malloc(sizeof(int)*size);

Did u check the return value of malloc?
It might be NULL, due to failed memory allocation.
I wonder how many times people have come across this? I must admit that
malloc has never failed me under Linux or Windows...
Oct 21 '07 #10
Richard Heathfield wrote:
Tor Rustad said:
>dopiotr wrote:
>>int *Msg=(int*)malloc(sizeof(int)*size);
Have you included <stdlib.h>? We recommend dropping the cast, and write
this:

int *Msg = malloc(sizeof(int)*size);

Who's this "we"?
The FAQ
Dropping the cast, sure, but repeating the type? Blech.
Agreed, I didn't notice the sizeof(type).
int *msg = malloc(sizeof(*msg) * size);
--
Tor <torust [at] online [dot] no>

"Technical skill is mastery of complexity, while creativity is mastery
of simplicity"
Oct 21 '07 #11
Richard wrote:
CryptiqueGuy <SR**********@gmail.comwrites:
[...]
>Did u check the return value of malloc?
It might be NULL, due to failed memory allocation.

I wonder how many times people have come across this?
I can remember, doing my first matrix computations under DOS. The C
compiler had a size limit at 64 kb for objects. Not only could malloc
fail, but the max matrix size, was rather useless for doing scientific
double precision calculations.
I must admit that malloc has never failed me under Linux or Windows...
With the default setting in Linux, malloc should never fail. :)

--
Tor <torust [at] online [dot] no>

"Technical skill is mastery of complexity, while creativity is mastery
of simplicity"
Oct 21 '07 #12
Tor Rustad said:
Richard Heathfield wrote:
>Tor Rustad said:
>>dopiotr wrote:
int *Msg=(int*)malloc(sizeof(int)*size);
Have you included <stdlib.h>? We recommend dropping the cast, and write
this:

int *Msg = malloc(sizeof(int)*size);

Who's this "we"?

The FAQ
Then the FAQ needs fixing. The above is poor style, and it is evident that
you agree...
>Dropping the cast, sure, but repeating the type? Blech.

Agreed, I didn't notice the sizeof(type).
int *msg = malloc(sizeof(*msg) * size);
Close enough. Personally, I'd use: int *msg = malloc(size * sizeof *msg);

--
Richard Heathfield <http://www.cpax.org.uk>
Email: -http://www. +rjh@
Google users: <http://www.cpax.org.uk/prg/writings/googly.php>
"Usenet is a strange place" - dmr 29 July 1999
Oct 21 '07 #13
In article <11*********************@k35g2000prh.googlegroups. com>,
Barry Schwarz <sc*******@yahoo.comwrote:
On Oct 21, 1:06 pm, dopiotr <nos...@nospam.invalidwrote:

snip
dopiotr wrote:
>Hello Group,
>int Msg[size];
>MPI_Send(Msg, size, MPI_INT, DEST, TAG, MPI_COMM_WORLD);
>this is working fine.
>But how to send Msg declared like this:
>int *Msg=(int*)malloc(sizeof(int)*size);
>It gives me
>p4_error: interrupt SIGSEGV: 11
>not_send: could not write to fd=4, errno = 32

snip
Working wersion:

This is not a working version. It invokes undefined behavior and you
state it produces incorrect results.

First -- agreed that this is off-topic and that comp.parallel.mpi
would be a more appropriate newsgroup. A couple of points for the
record, one here, one later:

When I correct the problems mentioned by others here, the OP's
program produces what appear to me to be correct results (using
OpenMPI on a Fedora 7 system).

#include "mpi.h"
#include<stdio.h>
#include<stdlib.h>
uint n_sigm;
float *suma_sigm;

void main(int c, char *v[])

main should return int.
{
int size,rank;
int j;
float *s_tmp;
MPI_Init(&c,&v);
MPI_Comm_size(MPI_COMM_WORLD,&size);
MPI_Comm_rank(MPI_COMM_WORLD,&rank);
n_sigm=1000;

suma_sigm=(float *)malloc(sizeof(float)*n_sigm);

Do not cast the return from malloc. It can never help and the only
effect would be to suppress a diagnostic you really want to see if it
applies to your code.
s_tmp=(float *)malloc(sizeof(float)*n_sigm);//difference

You should always check that malloc succeeds.

if(rank != 0)
{
for(j=0;j<n_sigm;j++)
suma_sigm[j]=rank*1000+j;
}
else
{
for(j=0;j<n_sigm;j++)
s_tmp[j]=0;
}

At this point, the elements of suma_sigm or s_tmp (but not both) have
been assigned values. The elements of the other array are
indeterminate (uninitialized).
MPI_Reduce(suma_sigm,s_tmp ,n_sigm,MPI_FLOAT,MPI_SUM,
0,MPI_COMM_WORLD);

Since you don't pass rank to this function, how is it supposed to
determine which of the arrays has valid values and which doesn't. Any
attempt by the function to evaluate an indeterminate element will
invoke undefined behavior.

Well, this *is* a library function, part of the same library that
initialized the local "rank" variable in the first place (via
the call to MPI_Comm_rank). Agreed that this isn't necessarily
obvious to readers of comp.lang.c, of course.

if( rank == 0 )
for(j=0;j<n_sigm;j++)
printf("%i %f\n",j,s_tmp[j]);
free(suma_sigm);
free(s_tmp);
MPI_Finalize();

}

Why it is not working:
#include "mpi.h"
#include<stdio.h>
#include<stdlib.h>
uint n_sigm;
float *suma_sigm;
int main(int c, char *v[])
{
int size,rank;
int j;
float *s_tmp;
MPI_Init(&c,&v);
MPI_Comm_size(MPI_COMM_WORLD,&size);
MPI_Comm_rank(MPI_COMM_WORLD,&rank);
n_sigm=1000;

suma_sigm=(float *)malloc(sizeof(float)*n_sigm);

if(rank != 0)
{
for(j=0;j<n_sigm;j++)
suma_sigm[j]=rank*1000+j;
}
else
{
for(j=0;j<n_sigm;j++)
s_tmp[j]=0;

At this point, s_tmp is still indeterminate; it does not yet point to
any memory you can access. s_tmp[j] does not exist. This invokes
undefined behavior.
}
s_tmp=(float *)malloc(sizeof(float)*n_sigm);//difference

And if the previous undefined behavior were not sufficient, this would
replace the address that s_tmp was pointing to with the address of the
newly allocated memory making all the elements of the array
indeterminate again.
MPI_Reduce(suma_sigm,s_tmp ,n_sigm,MPI_FLOAT,MPI_SUM,
0,MPI_COMM_WORLD);
if( rank == 0 )
for(j=0;j<n_sigm;j++)
printf("%i %f\n",j,s_tmp[j]);
free(suma_sigm);
free(s_tmp);
MPI_Finalize();

}

And why value of s_tmp[0] & s_tmp[1] is incorrect (in working
version).

By definition, a working version would produce correct results. What
is the vlaue of rank when you see these incorrect values? What is the
function MPI_Reduce supposed to do with the two arrays you pass?
--
B. L. Massingill
ObDisclaimer: I don't speak for my employers; they return the favor.
Oct 22 '07 #14
"Tor Rustad" <to********@hotmail.coma écrit dans le message de news:
_Z*********************@telenor.com...
>
"Technical skill is mastery of complexity, while creativity is mastery of
simplicity"
What a striking quote! (attributed to Erik Christopher Zeeman)

--
Chqrlie.
Oct 22 '07 #15

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

Similar topics

3
by: meyousikmann | last post by:
The following code just sets up and fills a dynamic array of integers. #include <cstdlib> int main() { int* intArray = NULL; int count; count = 20;
6
by: Vasileios Zografos | last post by:
Hello, I have a function that generates some values (e.g. vertices in 2d space) the number of which I dont know. So, it could generate 20 vertices, 100 vertices, or even 1 vertex. void...
4
by: Scott Lyons | last post by:
Hey all, Can someone help me figure out how to pass a dynamic array into a function? Its been giving me some trouble, and my textbook of course doesnt cover the issue. Its probably something...
5
by: meyousikmann | last post by:
I am having a little trouble with dynamic memory allocation. I am trying to read a text file and put the contents into a dynamic array. I know I can use vectors to make this easier, but it has to...
2
by: monkeydragon | last post by:
#define MAX_TABLE = 1024; BYTE* dynamic1D = new BYTE; later.. i want to create a dynamic 2d ARRAY like this: >] >] >]
8
by: acheron05 | last post by:
Hi there, Hopefully I won't fit the stereotype of the typical student posting his assignment to be written for him, but I am quite stuck. If anyone could give me some help in how to create...
11
by: toton | last post by:
Hi, I have little confusion about static memory allocation & dynamic allocation for a cluss member. I have class like class Bar{ public: explicit Bar(){ cout<<"bar default"<<endl; }
23
by: sandy | last post by:
I need (okay, I want) to make a dynamic array of my class 'Directory', within my class Directory (Can you already smell disaster?) Each Directory can have subdirectories so I thought to put these...
7
by: Jo | last post by:
Hi, How can i differentiate between static and dynamic allocated objects? For example: void SomeFunction1() { CObject *objectp = new CObject; CObject object;
13
by: kwikius | last post by:
Does anyone know what a C99 dynamic array is, and if it will be useable in C++? regards Andy Little
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
0
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,...
0
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...
0
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,...
0
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...
0
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...
0
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,...
0
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...

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.