int flag = kill(getppid(),SIGUSR1);
if (flag == -1)
printf("SON: Can't send a signal!\n");
else
printf("SON: Signal was successfully send!\n");
return 0;
}
#include <stdio.h> <stdlib.h> <signal.h> <sys/types.h> <sys/stat.h> <fcntl.h> <unistd.h>
void (*mysig(int sig, void(*handler)(int))) (int)
{
struct sigaction act,oldact;
act.sa_handler=handler;
sigemptyset(&act.sa_mask);
sigaddset(&act.sa_mask, SIGINT);
act.sa_flags=0;
if(sigaction(sig, &act, &oldact) < 0)
{
printf("ERROR\n");
return(SIG_ERR);
}
return(oldact.sa_handler);
}
void handler(int sig)
{
const int time = 30;
printf("Now SIGINT is blocked for a some time");
sleep(time);
}
int main(void)
{
void *oldhnd;
oldhnd = mysig( SIGUSR1, handler);
printf("Signal desposition has been changed\n");
pause();
printf("Signal desposition will be restored now\n");
signal(SIGUSR1,handler);
pause();
printf("SIGACT finished...\n");
return 0;
}
#include <stdio.h> <unistd.h>
int main (void)
{
int fd [2];
char str[256];
char pipe_str[256];
int err;
if((err = pipe(fd)) < 0) ОШИБКА СОЗДАНИЯ
if (!fork()) СЫН
{
printf("Entering SON function\n");
int input = fopen("input.txt","r");
if (input <=0) Ошибка
else {
printf("opened file: %s\n","input.txt");
fscanf(input,"%s",str);
write(fd[1],str,strlen(str));
printf("wrote data to pipe\n",str);
close(input);
close(fd[1]);
}
return 0;
}
else
{
printf("Entering FATHER function\n");
read (fd[0],pipe_str,30);
close(fd[0]);
printf("read from pipe: %s\n",pipe_str);
}
return 0;
}
#include <stdio.h>, <stdlib.h>, <unistd.h>, <sys/types.h>, <sys/stat.h>, <fcntl.h>
void server(int input, int output){
char buf[256]; int num=10; int count=0;
char * FileName = "input.txt";
if (write(output,FileName,strlen(FileName))<0)
ОШИБКАЗАПИСИВ FIFO
num = read(input,buf,256);
if( num <0) ОШИБКА ЧТЕНИЯ
printf("SERVER has read %d bytes\n",num);
printf("Server has recieved data: %s\n",buf);
}
int main (void){
int res = mknod ("output",S_IFIFO | 0666,0);
if (res<0) ОШИБКА СОЗДАНИЯ FIFO
res = mknod ("input",S_IFIFO | 0666,0);
if (res<0) ОШИБКА СОЗДАНИЯ FIFO
int output,input;
output = open("output",O_WRONLY);
if (output) OK else НЕОК
sleep(1);
input = open("input",O_RDONLY);
if (input) ОК else НЕОК
server(input,output);
close(output); close(input);
if (unlink("input")<0) ОШИБКА
if (unlink("output")<0) ОШИБКА
}
void client(int input, int output){
char buf[256]; char FileName[64];
int num = 10; int FileID;
num = read (input,FileName,64);
printf("recieved file name: %s\n",FileName);
FileID = fopen(FileName,"r");
if (FileID<0) ОШИБКА
int res = fscanf(FileID,"%s",buf);
fclose(FileID);
write(output,buf,strlen(buf));
}
int main (void){
int input, output;
if ((input = open("output",O_RDONLY))<0) ОШИБКА
if ((output = open("input",O_WRONLY))<0) ОШИБКА
client(input,output);
close(input); close(output); return 0;
}
#include <stdio.h>, <stdlib.h>, <unistd.h>, <sys/types.h>, <sys/stat.h>, <fcntl.h>
int MessageNum = -1;
typedef struct{
long type;
char text[50];
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.