Ниже приведенный код (process1) похож на actaul scanrio. Im обновляет global_data
из другого приложения, используя идентификатор процесса process1.Процесс остановлен, если выполняется в фоновом режиме
Из getchar()
в Process1, когда я запускаю этот процесс, как, отображается
$ ./process1 &
следующее сообщение.
[1]+ Stopped (tty input) ./process1
Я не могу удалить getchar()
. поэтому как запустить оба приложения.
Примечание: параметры telnet/ssh пытались. Если я подключусь через telnet, тогда будет открыто только это окно telnet. При max я могу работать только через один терминал.
#include <stdio.h>
volatile int global_data = 0;
int main()
{
FILE *fp = NULL;
int data = 0;
printf("\n Address of global_data:%x \n", &global_data);
while(1)
{
if(global_data == 0)
{
getchar();
continue;
}
else if(global_data == 2)
{
fp = fopen("JeyTest.txt", "w+");
if(fp == NULL)
{
printf("\n Error in file creation..... \n");
break;
}
for(data = 0; data < 1000; data++)
{
fprintf(fp, "%d\n", data);
}
fclose(fp);
break;
}
}
return 0;
}
Как вы изменяете 'global_data', если вы не используете разделяемую память? –
с помощью 'ptrace' Я могу прочитать раздел данных другого процесса. – Jeyaram
Почему бы не использовать общую память? Это намного проще, я бы сказал (и фактически разработал для этого ...) –