Я предполагаю, что вы создаете простое Linux символьное устройство , которое будет создано в таком месте, как / dev / mydev . Если это так, то следующее должно дать вам хороший пример того, как это сделать. Однако, если у вас есть другое значение для открыть устройство , то это не будет применимо.
Операции с файлами вашего устройства char
struct file_operations mydev_fops = {
.open = mydev_open,
};
Ваш mydev_open ()
static int mydev_open(struct inode *inode, struct file *filp)
{
pid_t pid;
int user_id;
/* This is the thread-ID, traditional PID is found in current->pgid */
pid = current->pid;
/* The current user-id (as of 2.6.29) */
user_id = current_uid();
}
Для получения дополнительной информации о том, что вы можете узнать о текущем процессе, посмотрите файл заголовка include / linux / cred.h .