У меня есть небольшая, но запутанная проблема ... Первый вопрос - это то, что использование main.I знаю, что вопрос глупый и простой, но у меня есть проблема. Я написал кодОсновная функция для дочернего процесса
#include<unistd.h>
#include<sys/types.h>
#include<stdio.h>
int main(){
pid_t ty;
ty=fork();
if(ty==0){
const char* x="/home/brucewilson/Desktop/jack_sahoo_teja_CDP/hey2";
static char *argv[]={"echo","Foo is my name.",NULL};
int main(){//observe this is second main in my child process
printf("hello");
}
int add(){
printf("5");
}
main();
add();
}
} `
Наблюдали ли вы вторую главную функцию я использовал в моем процессе ребенка хорошо компилятор не дал мне ошибку для this..Added этого он дал мне выход, как«привет»и 5 .
И, очевидно, приведенный ниже код даст ошибку ...
int main(){
printf("main");
main();
}
int main(){
}
Так что мой вопрос, почему он работает для дочернего процесса? Так это понятие, что Im предполагая, чтобы быть правдой, что не существует функция может быть названа основной() и каждый дочерний процесс будет иметь основную функцию совместно из его родителя является ложным. Пожалуйста, объясните мне, что происходит под этим кодом внутри моей системы, потому что дочерний процесс предполагает основную функцию, как и другую функцию, и ей также не нужна основная функция. Тогда как ребенок будет знать, откуда он должен начинать?
Вы говорите, что компилятор не дает вам ошибок? Я получаю немало, когда пытаюсь скомпилировать ваш код. – cooperl1
Для второго кода вы получаете ошибки для первого, что вы не делаете. Если вы хотите его увидеть, я не могу опубликовать снимок экрана –
Я определенно получаю много ошибок компилятора для первого кода. Например, вы не можете объявлять функции внутри других функций на C++. Язык не поддерживает эту функцию. См. Http://stackoverflow.com/questions/4324763/c-can-we-have-functions-inside-functions – cooperl1