Untitled
unknown
c_cpp
9 months ago
3.3 kB
7
Indexable
tousef najaiz ulad code :
#include <iostream>
#include <sys/ipc.h>
#include <sys/shm.h>
#include <stdio.h>
using namespace std;
int main() {
key_t key = ftok("shmfile", 65);
int shmid = shmget(key, 1024, 0666 | IPC_CREAT);
char *str = (char*) shmat(shmid, (void*)0, 0);
printf("Data read from memory: %s\n", str);
shmdt(str);
shmctl(shmid, IPC_RMID, NULL);
return 0;
}
zohaib chutya code:
#include <iostream>
#include <cstring>
#include <sys/ipc.h>
#include <sys/msg.h>
#define MAX_TEXT 100
struct PersonalData {
long msg_type;
char name[50];
char fatherName[50];
char cnic[20];
char registration[20];
};
int main() {
key_t key = 12345;
int msgid;
msgid = msgget(key, 0666 | IPC_CREAT);
if (msgid == -1) {
perror("msgget failed");
return 1;
}
PersonalData data;
data.msg_type = 1;
std::cout << "Enter your name: ";
std::cin.getline(data.name, sizeof(data.name));
std::cout << "Enter father's name: ";
std::cin.getline(data.fatherName, sizeof(data.fatherName));
std::cout << "Enter CNIC: ";
std::cin.getline(data.cnic, sizeof(data.cnic));
std::cout << "Enter registration number: ";
std::cin.getline(data.registration, sizeof(data.registration));
if (msgsnd(msgid, &data, sizeof(data) - sizeof(long), 0) == -1) {
perror("msgsnd failed");
return 1;
}
std::cout << "\nData sent to message queue:\n"
<< "Name: " << data.name << "\n"
<< "Father: " << data.fatherName << "\n"
<< "CNIC: " << data.cnic << "\n"
<< "Reg No: " << data.registration << std::endl;
return 0;
}
receiver.cpp:
#include <iostream>
#include <cstring>
#include <sys/ipc.h>
#include <sys/msg.h>
#define MAX_TEXT 100
struct PersonalData {
long msg_type;
char name[50];
char fatherName[50];
char cnic[20];
char registration[20];
};
int main() {
key_t key = 12345;
int msgid;
msgid = msgget(key, 0666);
if (msgid == -1) {
perror("msgget failed (is sender running?)");
return 1;
}
PersonalData received_data;
if (msgrcv(msgid, &received_data, sizeof(received_data) - sizeof(long), 1, 0) == -1) {
perror("msgrcv failed");
return 1;
}
std::cout << "\nData received from message queue:\n"
<< "Name: " << received_data.name << "\n"
<< "Father: " << received_data.fatherName << "\n"
<< "CNIC: " << received_data.cnic << "\n"
<< "Reg No: " << received_data.registration << "\n";
bool isVerified = true;
if (strlen(received_data.name) == 0) isVerified = false;
if (strlen(received_data.fatherName) == 0) isVerified = false;
if (strlen(received_data.cnic) < 5) isVerified = false;
if (strlen(received_data.registration) < 3) isVerified = false;
std::cout << "\nVerification: " << (isVerified ? "SUCCESS" : "FAILED - Missing/Invalid data") << std::endl;
msgctl(msgid, IPC_RMID, nullptr);
return 0;
}
Editor is loading...
Leave a Comment