cómo pasar valor entero entre 2 procesos en c

¿Cómo puedo pasar un valor entero entre 2 procesos?

Por ejemplo:
Tengo 2 procesos: child1 y child2. Child1 envía un número entero a child2. Child2 luego multiplicaría ese valor por 2 y lo enviaría de vuelta a child1. El niño 1 mostraría el valor.

¿Cómo puedo hacer esto en C en la plataforma Windows? ¿Podría alguien proporcionar un ejemplo de código que muestre cómo hacerlo?

El IPC (o comunicación entre procesos ) es de hecho un tema amplio.
Puede usar archivos compartidos, memoria compartida o señales para nombrar algunos.
Cuál utilizar realmente depende de usted y está determinado por el diseño de su aplicación.

Desde que escribiste que estás usando ventanas, aquí hay un ejemplo funcional que usa tuberías:

Tenga en cuenta que estoy tratando el búfer como una cadena terminada en nulo. Puedes tratarlo como números.

Servidor:

 // Server #include  #include  #define BUFSIZE (512) #define PIPENAME "\\\\.\\pipe\\popeye" int main(int argc, char **argv) { char msg[] = "You too!"; char buffer[BUFSIZE]; DWORD dwNumberOfBytes; BOOL bRet = FALSE; HANDLE hPipe = INVALID_HANDLE_VALUE; hPipe = CreateNamedPipeA(PIPENAME, PIPE_ACCESS_DUPLEX, PIPE_TYPE_MESSAGE | PIPE_READMODE_MESSAGE | PIPE_WAIT, PIPE_UNLIMITED_INSTANCES, BUFSIZE, BUFSIZE, 0, NULL); bRet = ConnectNamedPipe(hPipe, NULL); bRet = ReadFile(hPipe, buffer, BUFSIZE, &dwNumberOfBytes, NULL); printf("receiving: %s\n", buffer); bRet = WriteFile(hPipe, msg, strlen(msg)+1, &dwNumberOfBytes, NULL); printf("sending: %s\n", msg); CloseHandle(hPipe); return 0; } 

Cliente:

 // client #include  #include  #define BUFSIZE (512) #define PIPENAME "\\\\.\\pipe\\popeye" int main(int argc, char **argv) { char msg[] = "You're awesome!"; char buffer[BUFSIZE]; DWORD dwNumberOfBytes; printf("sending: %s\n", msg); CallNamedPipeA(PIPENAME, msg, strlen(msg)+1, buffer, BUFSIZE, &dwNumberOfBytes, NMPWAIT_WAIT_FOREVER); printf("receiving: %s\n", buffer); return 0; } 

¡Espero que ayude!