Короткий ответ: загрузите Драйверы устройств Linux и прочитайте главу по управлению памятью.
Серьезно, существует много тонких проблем, связанных с управлением памятью ядра, которое необходимо понять - я трачу много своих проблем отладки времени с ним.
vmalloc () очень редко используется, потому что ядро редко использует виртуальную память. kmalloc () - то, что обычно используется, но необходимо знать то, что последствия различных флагов, и Вам нужна стратегия контакта с тем, что происходит, когда это перестало работать - особенно, если Вы находитесь в обработчике прерываний, как Вы предложены.
Чтобы ответить на вопрос 1, чтобы получить имя файла из полного пути, вы можете использовать basename
или pathinfo
.
Например, (скопируйте и вставьте из документа) :
$path = "/home/httpd/html/index.php";
$file = basename($path); // $file is set to "index.php"
Или:
$path_parts = pathinfo('/www/htdocs/index.html');
echo $path_parts['dirname'], "\n";
echo $path_parts['basename'], "\n";
echo $path_parts['extension'], "\n";
echo $path_parts['filename'], "\n"; // since PHP 5.2.0
Чтобы переименовать / переместить файл, я полагаю, что rename
поможет, даже если это совсем не так »Zend Каркасное решение ».
Если файл не был перемещен ZF и все еще находится во временном каталоге, вы должны использовать move_uploaded_file
- но поскольку вы используете setDestination
, я предположим, что файла больше нет во временном каталоге системы.
// Для Zend Framework :: Переименовать загруженный файл
$renameFile = 'newName.jpg';
$fullFilePath = '/images/'.$renameFile;
// Rename uploaded file using Zend Framework
$filterFileRename = new Zend_Filter_File_Rename(array('target' => $fullFilePath, 'overwrite' => true));
$filterFileRename -> filter($name);