У меня есть сомнения.
Я открыл ядро и изменил каталог linux-3.1.1 / fs / open. c
Я изменил следующий код в open.c.
SYSCALL_DEFINE3(open, const char __user *, filename, int, flags, int, mode)
{
long ret;
printk(KERN_EMERG "Testing\n");
...
}
Я поместил только эту строку: printk (KERN_EMERG "Testing");
И я включил библиотеки:
и
Итак, я скомпилировал и перезагрузил свой Linux (Ubuntu). Во время перезагрузки появилось много «Тестирование» на экране. Так что до сих пор все в порядке.
Но теперь у меня проблема. Я создал эту программу в c.
int main()
{
size_t filedesc = open("testefile2.txt",O_CREAT | O_WRONLY,0640);
printf("%d",filedesc);
}
Я скомпилировал эту программу и выполнил и работает хорошо. Но я не понимаю, почему «Тестирование» не появилось в оболочке. Я имею в виду, если при перезагрузке компьютера появилось сообщение много слова "Тестирование", почему это слово не появляется, когда я выполняю указанную выше программу. Чтобы добавить, я включаю эти библиотеки в этот код выше:
unistd.h
, fcntl.h
, stdio.h
, stdlib.h
Спасибо, ребята.