Ответ находится прямо на странице man
(по крайней мере, в Linux):
RETURN VALUE Функция alloca () возвращает указатель на начало выделенного пространства. Если распределение вызывает переполнение стека, поведение программы не определено.
blockquote>Нельзя сказать, что он никогда не должен использоваться. Один из проектов OSS, над которыми я работаю, широко использует его, и до тех пор, пока вы не злоупотребляете им (
alloca
«огромные ценности»), все в порядке. Как только вы пройдете отметку «несколько сотен байт», пришло время использоватьmalloc
и друзей. Вы все равно можете получить отказ в распределении, но по крайней мере у вас будет некоторое указание на отказ, а не просто выдувание стека.
я нашел решение. это мое решение:
Route::get('put-in-dir', function() {
$content = collect(Storage::cloud()->listContents('/', false));
foreach ($content as $key => $value) {
if($value['name'] == 'MrTrung')
$root = $value['path'];
}
//dd($root);
$dir = '/'.$root;
$recursive = true; // Get subdirectories also?
$contents = collect(Storage::cloud()->listContents($dir, $recursive));
$dir = $contents->where('type', '=', 'dir')
->where('filename', '=', 'Contract')
->first(); // There could be duplicate directory names!
if ( ! $dir) {
return 'Directory does not exist!';
}
Storage::cloud()->put($dir['path'].'/test.txt', 'Hello World');
return 'File was created in the sub directory in Google Drive';
});
примечание: все правильно при установке Google Drive API v3. И я иду по этому пути: https://gist.github.com/ivanvermeyen/cc7c59c185daad9d4e7cb8c661d7b89b
удачи.