URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 4702
[ Назад ]

Исходное сообщение
"Как это работает - strncpy(  entry_path + path_len"

Отправлено samara , 29-Сен-05 00:39 
Привет всем!

char entry_path{PATH_MAX + 1];
size_t path_len;
*****
*****
*****
Пожалуста ответьте.

как объяснить этот трюк на следующей строке
strncpy(  entry_path + path_len, dir_entry{i]->d_name, sizeof(    entry_path) - path_len);

ни водной доке не встречал
может разьясните логику  entry_path + path_len
что бы самому такие трюки делать


и хочется материться, только на кого
на свои незнания
char * strncpy( const *s1, const char *s2, size_t length );


Содержание

Сообщения в этом обсуждении
"Как это работает - strncpy(  entry_path + path_len"
Отправлено Ghecko , 29-Сен-05 03:03 
>Привет всем!
>
>char entry_path{PATH_MAX + 1];
>size_t path_len;
>*****
>*****
>*****
>Пожалуста ответьте.
>
>как объяснить этот трюк на следующей строке
>strncpy(  entry_path + path_len, dir_entry{i]->d_name, sizeof(    entry_path) - path_len);
>
>ни водной доке не встречал
>может разьясните логику  entry_path + path_len
>что бы самому такие трюки делать
Ничего сложного. entry_path[] - массив типа char. entry_path - указатель на первый элемент массива, тоесть адрес ячейки памяти. path_len иммет тип size_t - это цлый тип. Ну и соответствеено прибаваляя к адресу первого эл-та массива какой то целое число мы получаем смещение относительно этого элемнта. Например если у нас массив char, то entry_path+4 будет указывать на entry_path[3], тоесть четвертый эл-т массива.  И никаких трюков :)