<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://ilianko.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=194.141.252.126</id>
	<title>Ilianko - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://ilianko.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=194.141.252.126"/>
	<link rel="alternate" type="text/html" href="https://ilianko.com/index.php?title=Special:Contributions/194.141.252.126"/>
	<updated>2026-10-26T21:05:53Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.11</generator>
	<entry>
		<id>https://ilianko.com/index.php?title=DRBL&amp;diff=1270</id>
		<title>DRBL</title>
		<link rel="alternate" type="text/html" href="https://ilianko.com/index.php?title=DRBL&amp;diff=1270"/>
		<updated>2011-06-22T09:11:00Z</updated>

		<summary type="html">&lt;p&gt;194.141.252.126: /* Настройка на боот през мрежатра */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
ddddddddd&lt;br /&gt;
&lt;br /&gt;
== Настройка на боот през мрежатра ==&lt;br /&gt;
&lt;br /&gt;
прогамата dcs задава услугата, която ще се предлага на отдалечените клиенти&lt;br /&gt;
 /opt/drbl/sbin/dcs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Компютърни мрежи]]&lt;/div&gt;</summary>
		<author><name>194.141.252.126</name></author>
	</entry>
	<entry>
		<id>https://ilianko.com/index.php?title=SEO&amp;diff=1239</id>
		<title>SEO</title>
		<link rel="alternate" type="text/html" href="https://ilianko.com/index.php?title=SEO&amp;diff=1239"/>
		<updated>2011-06-17T13:13:37Z</updated>

		<summary type="html">&lt;p&gt;194.141.252.126: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:SEO.gif]] ...&lt;br /&gt;
&lt;br /&gt;
[[Category:ММС]]&lt;/div&gt;</summary>
		<author><name>194.141.252.126</name></author>
	</entry>
	<entry>
		<id>https://ilianko.com/index.php?title=%D0%A2%D1%8A%D1%80%D1%81%D0%B5%D0%BD%D0%B5_%D0%BD%D0%B0_%D1%84%D0%B0%D0%B9%D0%BB_%D0%B8_%D1%81%D1%82%D1%80%D0%B8%D0%BD%D0%B3&amp;diff=1127</id>
		<title>Търсене на файл и стринг</title>
		<link rel="alternate" type="text/html" href="https://ilianko.com/index.php?title=%D0%A2%D1%8A%D1%80%D1%81%D0%B5%D0%BD%D0%B5_%D0%BD%D0%B0_%D1%84%D0%B0%D0%B9%D0%BB_%D0%B8_%D1%81%D1%82%D1%80%D0%B8%D0%BD%D0%B3&amp;diff=1127"/>
		<updated>2011-06-08T15:21:05Z</updated>

		<summary type="html">&lt;p&gt;194.141.252.126: /* Търсене на стринг и файл */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Търсене на файл ==&lt;br /&gt;
&lt;br /&gt;
 find . -iname &#039;*php&#039;&lt;br /&gt;
Търсене на файлове в текущата и подчинените директори на файлове завършващи с &amp;quot;php&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 find . -iname &#039;*php&#039; -mtime -1&lt;br /&gt;
Извежда скоро редактирани файлове&lt;br /&gt;
 &lt;br /&gt;
 find . -iname &#039;*php&#039; -mtime +1 &lt;br /&gt;
Извежда файлове редактиране същия ден.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Търсене стринг във файловете от текуюата директория. ==&lt;br /&gt;
&lt;br /&gt;
 find . | xargs grep &#039;string&#039; -sl &lt;br /&gt;
&lt;br /&gt;
Търсенето се извършва от grep (-sl - опции за извеждане на резултатите)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Търсене на стринг и файл ==&lt;br /&gt;
 find . -iname &#039;*php&#039; | xargs grep &#039;string&#039; -sl &lt;br /&gt;
&lt;br /&gt;
[http://www.liamdelahunty.com/tips/linux_find_string_files.php търсене на файлове и съдържанието им]&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux Справочник| ]]&lt;/div&gt;</summary>
		<author><name>194.141.252.126</name></author>
	</entry>
	<entry>
		<id>https://ilianko.com/index.php?title=%D0%A3%D0%BF%D1%80%D0%B0%D0%B6%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_8._Scanner&amp;diff=903</id>
		<title>Упражнение 8. Scanner</title>
		<link rel="alternate" type="text/html" href="https://ilianko.com/index.php?title=%D0%A3%D0%BF%D1%80%D0%B0%D0%B6%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_8._Scanner&amp;diff=903"/>
		<updated>2011-05-05T06:33:09Z</updated>

		<summary type="html">&lt;p&gt;194.141.252.126: /* Инсталация скенер в ubuntu */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Инсталация скенер в ubuntu==&lt;br /&gt;
&lt;br /&gt;
Задача 1. Да се инсталира XSane, като използвате Ububt Software Center&lt;br /&gt;
&lt;br /&gt;
Xsane е софтуер за сканиране. Може да работи самостоятелно&lt;br /&gt;
Инсталиране на S&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Задача 2. Сканирайте дадените шаблони резолюции&lt;br /&gt;
150 , 200 , 250, 300, 350, 400 dpi&lt;br /&gt;
&lt;br /&gt;
Запишете ги в tiff, png , jpeg 80, jpeg 60, jpeg 95 фомрати&lt;br /&gt;
&lt;br /&gt;
Разгледайте получените резултати и направете изводи, кой формат за какви обекти е подходящ&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
scanimage -L&lt;br /&gt;
&lt;br /&gt;
[[Image:resolution.png|thumb|300px|none]]&lt;br /&gt;
&lt;br /&gt;
[[Image:gradient.png|thumb|300px|none]]&lt;br /&gt;
&lt;br /&gt;
[[Image:gradient1.png|thumb|300px|none]]&lt;br /&gt;
&lt;br /&gt;
[[Image:lenna.jpg|thumb|300px|none]]&lt;br /&gt;
&lt;br /&gt;
==тестване различни формати==&lt;br /&gt;
==Инсталация openCV==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. Инсталирайте cmake&lt;br /&gt;
sudo apt-get install cmake&lt;br /&gt;
&lt;br /&gt;
2. Инсталирайте библиотеката libgtk2.0-dev&lt;br /&gt;
 sudo apt-get install libgtk2.0-dev&lt;br /&gt;
&lt;br /&gt;
3. да се свали openCV 2.2 и разархивирайте в директория Downloads/OpenCV-2.2.0&lt;br /&gt;
&lt;br /&gt;
4. Влезте в директорията&lt;br /&gt;
 cd Downloads/OpenCV-2.2.0&lt;br /&gt;
 cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ./&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
 export LD_LIBRARY_PATH=/home/lab/Downloads/OpenCV-2.2.0/lib:$LD_LIBRARY_PATH sudo ldconfig&lt;br /&gt;
&lt;br /&gt;
 -lopencv_core -lopencv_imgproc -lopencv_calib3d -lopencv_video -lopencv_features2d -lopencv_ml -lopencv_highgui -lopencv_objdetect -lopencv_contrib -lopencv_legacy&lt;br /&gt;
&lt;br /&gt;
==тестване openCV==&lt;br /&gt;
&lt;br /&gt;
[[Category:Компютърна периферия]]&lt;/div&gt;</summary>
		<author><name>194.141.252.126</name></author>
	</entry>
	<entry>
		<id>https://ilianko.com/index.php?title=%D0%A3%D0%BF%D1%80%D0%B0%D0%B6%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_8._Scanner&amp;diff=889</id>
		<title>Упражнение 8. Scanner</title>
		<link rel="alternate" type="text/html" href="https://ilianko.com/index.php?title=%D0%A3%D0%BF%D1%80%D0%B0%D0%B6%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_8._Scanner&amp;diff=889"/>
		<updated>2011-05-04T13:55:52Z</updated>

		<summary type="html">&lt;p&gt;194.141.252.126: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Инсталация скенер в ubuntu==&lt;br /&gt;
&lt;br /&gt;
Задача 1. Да се инсталира XSane, като използвате Ububt Software Center&lt;br /&gt;
&lt;br /&gt;
Xsane е софтуер за сканиране. Може да работи самостоятелно&lt;br /&gt;
Инсталиране на S&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Задача 2. Сканирайте дадените шаблони резолюции&lt;br /&gt;
150 , 200 , 250, 300, 350, 400 p/inch&lt;br /&gt;
&lt;br /&gt;
Запишете ги в tiff, png , jpeg 80, jpeg 60, jpeg 95 фомрати&lt;br /&gt;
&lt;br /&gt;
Разгледайте получените резултати и направете изводи, кой формат за какви обекти е подходящ&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
scanimage -L&lt;br /&gt;
&lt;br /&gt;
==тестване различни формати==&lt;br /&gt;
==Инсталация openCV==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. Инсталирайте cmake&lt;br /&gt;
sudo apt-get install cmake&lt;br /&gt;
&lt;br /&gt;
2. Инсталирайте библиотеката libgtk2.0-dev&lt;br /&gt;
sudo apt-get install libgtk2.0-dev&lt;br /&gt;
Уверете се, че имате инсталиран cmake &lt;br /&gt;
&lt;br /&gt;
3. да се свали openCV 2.2 и разархивирайте в директория Downloads/OpenCV-2.2.0&lt;br /&gt;
&lt;br /&gt;
4. Влезте в директорията&lt;br /&gt;
 cd Downloads/OpenCV-2.2.0&lt;br /&gt;
  cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ./&lt;br /&gt;
  make&lt;br /&gt;
  make install&lt;br /&gt;
&lt;br /&gt;
5. Компилация на примерите&lt;br /&gt;
 cd samples/c/&lt;br /&gt;
 chmod +x build_all.sh&lt;br /&gt;
 ./build_all.sh&lt;br /&gt;
&lt;br /&gt;
 export LD_LIBRARY_PATH=/home/lab/Downloads/OpenCV-2.2.0/lib:$LD_LIBRARY_PATH sudo ldconfig&lt;br /&gt;
&lt;br /&gt;
==тестване openCV==&lt;br /&gt;
&lt;br /&gt;
[[Category:Компютърна периферия]]&lt;/div&gt;</summary>
		<author><name>194.141.252.126</name></author>
	</entry>
	<entry>
		<id>https://ilianko.com/index.php?title=Talk:Uinput&amp;diff=685</id>
		<title>Talk:Uinput</title>
		<link rel="alternate" type="text/html" href="https://ilianko.com/index.php?title=Talk:Uinput&amp;diff=685"/>
		<updated>2011-04-15T07:29:27Z</updated>

		<summary type="html">&lt;p&gt;194.141.252.126: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Created by Dobril Todorov Marinov  grade III - Computer Peripherals&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
#include &amp;lt;string.h&amp;gt;&lt;br /&gt;
#include &amp;lt;unistd.h&amp;gt;&lt;br /&gt;
#include &amp;lt;fcntl.h&amp;gt;&lt;br /&gt;
#include &amp;lt;errno.h&amp;gt;&lt;br /&gt;
#include &amp;lt;linux/input.h&amp;gt;&lt;br /&gt;
#include &amp;lt;linux/uinput.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define die(str, args...) do { \&lt;br /&gt;
        perror(str); \&lt;br /&gt;
        exit(EXIT_FAILURE); \&lt;br /&gt;
    } while(0)&lt;br /&gt;
&lt;br /&gt;
int&lt;br /&gt;
main(void)&lt;br /&gt;
{&lt;br /&gt;
    int                    fd,fd1;&lt;br /&gt;
    struct uinput_user_dev uidev;&lt;br /&gt;
    struct input_event     ev;&lt;br /&gt;
    int                    dx, dy;&lt;br /&gt;
&lt;br /&gt;
    fd = open(&amp;quot;/dev/uinput&amp;quot;, O_WRONLY | O_NONBLOCK);&lt;br /&gt;
    if(fd &amp;lt; 0)&lt;br /&gt;
        die(&amp;quot;error: open&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    if(ioctl(fd, UI_SET_EVBIT, EV_KEY) &amp;lt; 0)&lt;br /&gt;
        die(&amp;quot;error: ioctl&amp;quot;);&lt;br /&gt;
    if(ioctl(fd, UI_SET_KEYBIT, BTN_LEFT) &amp;lt; 0)&lt;br /&gt;
        die(&amp;quot;error: ioctl&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    if(ioctl(fd, UI_SET_EVBIT, EV_REL) &amp;lt; 0)&lt;br /&gt;
        die(&amp;quot;error: ioctl&amp;quot;);&lt;br /&gt;
    if(ioctl(fd, UI_SET_RELBIT, REL_X) &amp;lt; 0)&lt;br /&gt;
        die(&amp;quot;error: ioctl&amp;quot;);&lt;br /&gt;
    if(ioctl(fd, UI_SET_RELBIT, REL_Y) &amp;lt; 0)&lt;br /&gt;
        die(&amp;quot;error: ioctl&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    memset(&amp;amp;uidev, 0, sizeof(uidev));&lt;br /&gt;
  snprintf(uidev.name, UINPUT_MAX_NAME_SIZE, &amp;quot;uinput-sample&amp;quot;);&lt;br /&gt;
    uidev.id.bustype = BUS_USB;&lt;br /&gt;
    uidev.id.vendor  = 0x1;&lt;br /&gt;
    uidev.id.product = 0x1;&lt;br /&gt;
    uidev.id.version = 1;&lt;br /&gt;
&lt;br /&gt;
    if(write(fd, &amp;amp;uidev, sizeof(uidev)) &amp;lt; 0)&lt;br /&gt;
        die(&amp;quot;error: write&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    if(ioctl(fd, UI_DEV_CREATE) &amp;lt; 0)&lt;br /&gt;
        die(&amp;quot;error: ioctl&amp;quot;);&lt;br /&gt;
        &lt;br /&gt;
        &lt;br /&gt;
    struct input_event ev2;&lt;br /&gt;
&lt;br /&gt;
    fd1 = open(&amp;quot;/dev/input/event3&amp;quot;, O_RDONLY);&lt;br /&gt;
           sleep(2);  &lt;br /&gt;
        while (1)&lt;br /&gt;
    {&lt;br /&gt;
    read(fd1, &amp;amp;ev2, sizeof(struct input_event));&lt;br /&gt;
&lt;br /&gt;
    if(ev2.type == 1 &amp;amp;&amp;amp; ev2.code == 103 &amp;amp;&amp;amp; (ev2.value == 1 || ev2.value == 2))&lt;br /&gt;
       { printf(&amp;quot;key %i state %i || UP ||\n&amp;quot;, ev2.code, ev2.value);&lt;br /&gt;
        dx = 0;&lt;br /&gt;
        dy = -5;&lt;br /&gt;
        &lt;br /&gt;
        &lt;br /&gt;
        &lt;br /&gt;
            memset(&amp;amp;ev, 0, sizeof(struct input_event));&lt;br /&gt;
            ev.type = EV_REL;&lt;br /&gt;
            ev.code = REL_X;&lt;br /&gt;
            ev.value = dx;&lt;br /&gt;
            if(write(fd, &amp;amp;ev, sizeof(struct input_event)) &amp;lt; 0)&lt;br /&gt;
                die(&amp;quot;error: write&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
            memset(&amp;amp;ev, 0, sizeof(struct input_event));&lt;br /&gt;
            ev.type = EV_REL;&lt;br /&gt;
            ev.code = REL_Y;&lt;br /&gt;
            ev.value = dy;&lt;br /&gt;
            if(write(fd, &amp;amp;ev, sizeof(struct input_event)) &amp;lt; 0)&lt;br /&gt;
                die(&amp;quot;error: write&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
            memset(&amp;amp;ev, 0, sizeof(struct input_event));&lt;br /&gt;
            ev.type = EV_SYN;&lt;br /&gt;
            ev.code = 0;&lt;br /&gt;
            ev.value = 0;&lt;br /&gt;
            if(write(fd, &amp;amp;ev, sizeof(struct input_event)) &amp;lt; 0)&lt;br /&gt;
                die(&amp;quot;error: write&amp;quot;);&lt;br /&gt;
			}&lt;br /&gt;
			&lt;br /&gt;
			if(ev2.type == 1 &amp;amp;&amp;amp; ev2.code == 105 &amp;amp;&amp;amp; (ev2.value == 1 || ev2.value == 2))&lt;br /&gt;
       { printf(&amp;quot;key %i state %i || LEFT ||\n&amp;quot;, ev2.code, ev2.value);&lt;br /&gt;
        dx = -5;&lt;br /&gt;
        dy = 0;&lt;br /&gt;
        &lt;br /&gt;
        &lt;br /&gt;
            memset(&amp;amp;ev, 0, sizeof(struct input_event));&lt;br /&gt;
            ev.type = EV_REL;&lt;br /&gt;
            ev.code = REL_X;&lt;br /&gt;
            ev.value = dx;&lt;br /&gt;
            if(write(fd, &amp;amp;ev, sizeof(struct input_event)) &amp;lt; 0)&lt;br /&gt;
                die(&amp;quot;error: write&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
            memset(&amp;amp;ev, 0, sizeof(struct input_event));&lt;br /&gt;
            ev.type = EV_REL;&lt;br /&gt;
            ev.code = REL_Y;&lt;br /&gt;
            ev.value = dy;&lt;br /&gt;
            if(write(fd, &amp;amp;ev, sizeof(struct input_event)) &amp;lt; 0)&lt;br /&gt;
                die(&amp;quot;error: write&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
            memset(&amp;amp;ev, 0, sizeof(struct input_event));&lt;br /&gt;
            ev.type = EV_SYN;&lt;br /&gt;
            ev.code = 0;&lt;br /&gt;
            ev.value = 0;&lt;br /&gt;
            if(write(fd, &amp;amp;ev, sizeof(struct input_event)) &amp;lt; 0)&lt;br /&gt;
                die(&amp;quot;error: write&amp;quot;);&lt;br /&gt;
			}&lt;br /&gt;
			&lt;br /&gt;
			&lt;br /&gt;
			if(ev2.type == 1 &amp;amp;&amp;amp; ev2.code == 106 &amp;amp;&amp;amp; (ev2.value == 1 || ev2.value == 2))&lt;br /&gt;
       { printf(&amp;quot;key %i state %i || RIGHT ||\n&amp;quot;, ev2.code, ev2.value);&lt;br /&gt;
        dx = 5;&lt;br /&gt;
        dy = 0;&lt;br /&gt;
        &lt;br /&gt;
        &lt;br /&gt;
            memset(&amp;amp;ev, 0, sizeof(struct input_event));&lt;br /&gt;
            ev.type = EV_REL;&lt;br /&gt;
            ev.code = REL_X;&lt;br /&gt;
            ev.value = dx;&lt;br /&gt;
            if(write(fd, &amp;amp;ev, sizeof(struct input_event)) &amp;lt; 0)&lt;br /&gt;
                die(&amp;quot;error: write&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
            memset(&amp;amp;ev, 0, sizeof(struct input_event));&lt;br /&gt;
            ev.type = EV_REL;&lt;br /&gt;
            ev.code = REL_Y;&lt;br /&gt;
            ev.value = dy;&lt;br /&gt;
            if(write(fd, &amp;amp;ev, sizeof(struct input_event)) &amp;lt; 0)&lt;br /&gt;
                die(&amp;quot;error: write&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
            memset(&amp;amp;ev, 0, sizeof(struct input_event));&lt;br /&gt;
            ev.type = EV_SYN;&lt;br /&gt;
            ev.code = 0;&lt;br /&gt;
            ev.value = 0;&lt;br /&gt;
            if(write(fd, &amp;amp;ev, sizeof(struct input_event)) &amp;lt; 0)&lt;br /&gt;
                die(&amp;quot;error: write&amp;quot;);&lt;br /&gt;
			}&lt;br /&gt;
			&lt;br /&gt;
			&lt;br /&gt;
			if(ev2.type == 1 &amp;amp;&amp;amp; ev2.code == 108 &amp;amp;&amp;amp; (ev2.value == 1 || ev2.value == 2))&lt;br /&gt;
       { printf(&amp;quot;key %i state %i || DOWN ||\n&amp;quot;, ev2.code, ev2.value);&lt;br /&gt;
        dx = 0;&lt;br /&gt;
        dy = 5;&lt;br /&gt;
        &lt;br /&gt;
        &lt;br /&gt;
            memset(&amp;amp;ev, 0, sizeof(struct input_event));&lt;br /&gt;
            ev.type = EV_REL;&lt;br /&gt;
            ev.code = REL_X;&lt;br /&gt;
            ev.value = dx;&lt;br /&gt;
            if(write(fd, &amp;amp;ev, sizeof(struct input_event)) &amp;lt; 0)&lt;br /&gt;
                die(&amp;quot;error: write&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
            memset(&amp;amp;ev, 0, sizeof(struct input_event));&lt;br /&gt;
            ev.type = EV_REL;&lt;br /&gt;
            ev.code = REL_Y;&lt;br /&gt;
            ev.value = dy;&lt;br /&gt;
            if(write(fd, &amp;amp;ev, sizeof(struct input_event)) &amp;lt; 0)&lt;br /&gt;
                die(&amp;quot;error: write&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
            memset(&amp;amp;ev, 0, sizeof(struct input_event));&lt;br /&gt;
            ev.type = EV_SYN;&lt;br /&gt;
            ev.code = 0;&lt;br /&gt;
            ev.value = 0;&lt;br /&gt;
            if(write(fd, &amp;amp;ev, sizeof(struct input_event)) &amp;lt; 0)&lt;br /&gt;
                die(&amp;quot;error: write&amp;quot;);&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
            usleep(15000);&lt;br /&gt;
&lt;br /&gt;
	} close(fd);&lt;br /&gt;
	  if(ioctl(fd, UI_DEV_DESTROY) &amp;lt; 0)&lt;br /&gt;
        die(&amp;quot;error: ioctl&amp;quot;);return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
by Samuil Goranov &lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
#include &amp;lt;string.h&amp;gt;&lt;br /&gt;
#include &amp;lt;unistd.h&amp;gt;&lt;br /&gt;
#include &amp;lt;fcntl.h&amp;gt;&lt;br /&gt;
#include &amp;lt;errno.h&amp;gt;&lt;br /&gt;
#include &amp;lt;linux/input.h&amp;gt;&lt;br /&gt;
#include &amp;lt;linux/uinput.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define die(str, args...) do { \&lt;br /&gt;
        perror(str); \&lt;br /&gt;
        exit(EXIT_FAILURE); \&lt;br /&gt;
    } while(0)&lt;br /&gt;
&lt;br /&gt;
int&lt;br /&gt;
main(void)&lt;br /&gt;
{&lt;br /&gt;
    int                    fd;&lt;br /&gt;
    struct uinput_user_dev uidev;&lt;br /&gt;
    struct input_event     ev;&lt;br /&gt;
    int                    dx, dy;&lt;br /&gt;
    int                    i;&lt;br /&gt;
&lt;br /&gt;
    fd = open(&amp;quot;/dev/uinput&amp;quot;, O_WRONLY | O_NONBLOCK);&lt;br /&gt;
    if(fd &amp;lt; 0)&lt;br /&gt;
        die(&amp;quot;error: open&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    if(ioctl(fd, UI_SET_EVBIT, EV_KEY) &amp;lt; 0)&lt;br /&gt;
        die(&amp;quot;error: ioctl&amp;quot;);&lt;br /&gt;
    if(ioctl(fd, UI_SET_KEYBIT, BTN_LEFT) &amp;lt; 0)&lt;br /&gt;
        die(&amp;quot;error: ioctl&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    if(ioctl(fd, UI_SET_EVBIT, EV_REL) &amp;lt; 0)&lt;br /&gt;
        die(&amp;quot;error: ioctl&amp;quot;);&lt;br /&gt;
    if(ioctl(fd, UI_SET_RELBIT, REL_X) &amp;lt; 0)&lt;br /&gt;
        die(&amp;quot;error: ioctl&amp;quot;);&lt;br /&gt;
    if(ioctl(fd, UI_SET_RELBIT, REL_Y) &amp;lt; 0)&lt;br /&gt;
        die(&amp;quot;error: ioctl&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    memset(&amp;amp;uidev, 0, sizeof(uidev));&lt;br /&gt;
  snprintf(uidev.name, UINPUT_MAX_NAME_SIZE, &amp;quot;uinput-sample&amp;quot;);&lt;br /&gt;
    uidev.id.bustype = BUS_USB;&lt;br /&gt;
    uidev.id.vendor  = 0x1;&lt;br /&gt;
    uidev.id.product = 0x1;&lt;br /&gt;
    uidev.id.version = 1;&lt;br /&gt;
&lt;br /&gt;
    if(write(fd, &amp;amp;uidev, sizeof(uidev)) &amp;lt; 0)&lt;br /&gt;
        die(&amp;quot;error: write&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    if(ioctl(fd, UI_DEV_CREATE) &amp;lt; 0)&lt;br /&gt;
        die(&amp;quot;error: ioctl&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    sleep(2);&lt;br /&gt;
&lt;br /&gt;
		//=========================================&lt;br /&gt;
		    int fdd;&lt;br /&gt;
			struct input_event evv;&lt;br /&gt;
&lt;br /&gt;
			fdd = open(&amp;quot;/dev/input/event3&amp;quot;, O_RDONLY);&lt;br /&gt;
			if(fdd &amp;lt; 0) {&lt;br /&gt;
			printf(&amp;quot;error openning&amp;quot;);&lt;br /&gt;
			return 1;}&lt;br /&gt;
			&lt;br /&gt;
			&lt;br /&gt;
			&lt;br /&gt;
			&lt;br /&gt;
&lt;br /&gt;
			while(1){&lt;br /&gt;
			read(fdd, &amp;amp;evv, sizeof(struct input_event));&lt;br /&gt;
			if(evv.type ==1 ){&lt;br /&gt;
			//printf(&amp;quot;key %i state %i\n&amp;quot;, evv.code, evv.value);&lt;br /&gt;
			if(evv.code == 103){ dx = -0; dy = -10; }&lt;br /&gt;
			if(evv.code == 106){ dx = +10; dy = -0; }&lt;br /&gt;
			if(evv.code == 105){ dx = -10; dy = -0; }&lt;br /&gt;
			if(evv.code == 108){ dx = -0; dy = +10; }&lt;br /&gt;
			if(evv.code == 82){ puts(&amp;quot;Habara habara&amp;quot;); }&lt;br /&gt;
			&lt;br /&gt;
&lt;br /&gt;
			&lt;br /&gt;
		//=========================================&lt;br /&gt;
  &lt;br /&gt;
            //dx = -100;&lt;br /&gt;
            //dy = -10;&lt;br /&gt;
          &lt;br /&gt;
       &lt;br /&gt;
            memset(&amp;amp;ev, 0, sizeof(struct input_event));&lt;br /&gt;
            ev.type = EV_REL;&lt;br /&gt;
            ev.code = REL_X;&lt;br /&gt;
            ev.value = dx;&lt;br /&gt;
            if(write(fd, &amp;amp;ev, sizeof(struct input_event)) &amp;lt; 0)&lt;br /&gt;
                die(&amp;quot;error: write&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
            memset(&amp;amp;ev, 0, sizeof(struct input_event));&lt;br /&gt;
            ev.type = EV_REL;&lt;br /&gt;
            ev.code = REL_Y;&lt;br /&gt;
            ev.value = dy;&lt;br /&gt;
            if(write(fd, &amp;amp;ev, sizeof(struct input_event)) &amp;lt; 0)&lt;br /&gt;
                die(&amp;quot;error: write&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
            memset(&amp;amp;ev, 0, sizeof(struct input_event));&lt;br /&gt;
            ev.type = EV_SYN;&lt;br /&gt;
            ev.code = 0;&lt;br /&gt;
            ev.value = 0;&lt;br /&gt;
            if(write(fd, &amp;amp;ev, sizeof(struct input_event)) &amp;lt; 0)&lt;br /&gt;
                die(&amp;quot;error: write&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
            usleep(15000);&lt;br /&gt;
      }}&lt;br /&gt;
&lt;br /&gt;
    if(ioctl(fd, UI_DEV_DESTROY) &amp;lt; 0)&lt;br /&gt;
        die(&amp;quot;error: ioctl&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    close(fd);&lt;br /&gt;
&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/code&lt;/div&gt;</summary>
		<author><name>194.141.252.126</name></author>
	</entry>
	<entry>
		<id>https://ilianko.com/index.php?title=Talk:Uinput&amp;diff=684</id>
		<title>Talk:Uinput</title>
		<link rel="alternate" type="text/html" href="https://ilianko.com/index.php?title=Talk:Uinput&amp;diff=684"/>
		<updated>2011-04-15T07:28:32Z</updated>

		<summary type="html">&lt;p&gt;194.141.252.126: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Created by Dobril Todorov Marinov  grade III - Computer Peripherals&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
#include &amp;lt;string.h&amp;gt;&lt;br /&gt;
#include &amp;lt;unistd.h&amp;gt;&lt;br /&gt;
#include &amp;lt;fcntl.h&amp;gt;&lt;br /&gt;
#include &amp;lt;errno.h&amp;gt;&lt;br /&gt;
#include &amp;lt;linux/input.h&amp;gt;&lt;br /&gt;
#include &amp;lt;linux/uinput.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define die(str, args...) do { \&lt;br /&gt;
        perror(str); \&lt;br /&gt;
        exit(EXIT_FAILURE); \&lt;br /&gt;
    } while(0)&lt;br /&gt;
&lt;br /&gt;
int&lt;br /&gt;
main(void)&lt;br /&gt;
{&lt;br /&gt;
    int                    fd,fd1;&lt;br /&gt;
    struct uinput_user_dev uidev;&lt;br /&gt;
    struct input_event     ev;&lt;br /&gt;
    int                    dx, dy;&lt;br /&gt;
&lt;br /&gt;
    fd = open(&amp;quot;/dev/uinput&amp;quot;, O_WRONLY | O_NONBLOCK);&lt;br /&gt;
    if(fd &amp;lt; 0)&lt;br /&gt;
        die(&amp;quot;error: open&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    if(ioctl(fd, UI_SET_EVBIT, EV_KEY) &amp;lt; 0)&lt;br /&gt;
        die(&amp;quot;error: ioctl&amp;quot;);&lt;br /&gt;
    if(ioctl(fd, UI_SET_KEYBIT, BTN_LEFT) &amp;lt; 0)&lt;br /&gt;
        die(&amp;quot;error: ioctl&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    if(ioctl(fd, UI_SET_EVBIT, EV_REL) &amp;lt; 0)&lt;br /&gt;
        die(&amp;quot;error: ioctl&amp;quot;);&lt;br /&gt;
    if(ioctl(fd, UI_SET_RELBIT, REL_X) &amp;lt; 0)&lt;br /&gt;
        die(&amp;quot;error: ioctl&amp;quot;);&lt;br /&gt;
    if(ioctl(fd, UI_SET_RELBIT, REL_Y) &amp;lt; 0)&lt;br /&gt;
        die(&amp;quot;error: ioctl&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    memset(&amp;amp;uidev, 0, sizeof(uidev));&lt;br /&gt;
  snprintf(uidev.name, UINPUT_MAX_NAME_SIZE, &amp;quot;uinput-sample&amp;quot;);&lt;br /&gt;
    uidev.id.bustype = BUS_USB;&lt;br /&gt;
    uidev.id.vendor  = 0x1;&lt;br /&gt;
    uidev.id.product = 0x1;&lt;br /&gt;
    uidev.id.version = 1;&lt;br /&gt;
&lt;br /&gt;
    if(write(fd, &amp;amp;uidev, sizeof(uidev)) &amp;lt; 0)&lt;br /&gt;
        die(&amp;quot;error: write&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    if(ioctl(fd, UI_DEV_CREATE) &amp;lt; 0)&lt;br /&gt;
        die(&amp;quot;error: ioctl&amp;quot;);&lt;br /&gt;
        &lt;br /&gt;
        &lt;br /&gt;
    struct input_event ev2;&lt;br /&gt;
&lt;br /&gt;
    fd1 = open(&amp;quot;/dev/input/event3&amp;quot;, O_RDONLY);&lt;br /&gt;
           sleep(2);  &lt;br /&gt;
        while (1)&lt;br /&gt;
    {&lt;br /&gt;
    read(fd1, &amp;amp;ev2, sizeof(struct input_event));&lt;br /&gt;
&lt;br /&gt;
    if(ev2.type == 1 &amp;amp;&amp;amp; ev2.code == 103 &amp;amp;&amp;amp; (ev2.value == 1 || ev2.value == 2))&lt;br /&gt;
       { printf(&amp;quot;key %i state %i || UP ||\n&amp;quot;, ev2.code, ev2.value);&lt;br /&gt;
        dx = 0;&lt;br /&gt;
        dy = -5;&lt;br /&gt;
        &lt;br /&gt;
        &lt;br /&gt;
        &lt;br /&gt;
            memset(&amp;amp;ev, 0, sizeof(struct input_event));&lt;br /&gt;
            ev.type = EV_REL;&lt;br /&gt;
            ev.code = REL_X;&lt;br /&gt;
            ev.value = dx;&lt;br /&gt;
            if(write(fd, &amp;amp;ev, sizeof(struct input_event)) &amp;lt; 0)&lt;br /&gt;
                die(&amp;quot;error: write&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
            memset(&amp;amp;ev, 0, sizeof(struct input_event));&lt;br /&gt;
            ev.type = EV_REL;&lt;br /&gt;
            ev.code = REL_Y;&lt;br /&gt;
            ev.value = dy;&lt;br /&gt;
            if(write(fd, &amp;amp;ev, sizeof(struct input_event)) &amp;lt; 0)&lt;br /&gt;
                die(&amp;quot;error: write&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
            memset(&amp;amp;ev, 0, sizeof(struct input_event));&lt;br /&gt;
            ev.type = EV_SYN;&lt;br /&gt;
            ev.code = 0;&lt;br /&gt;
            ev.value = 0;&lt;br /&gt;
            if(write(fd, &amp;amp;ev, sizeof(struct input_event)) &amp;lt; 0)&lt;br /&gt;
                die(&amp;quot;error: write&amp;quot;);&lt;br /&gt;
			}&lt;br /&gt;
			&lt;br /&gt;
			if(ev2.type == 1 &amp;amp;&amp;amp; ev2.code == 105 &amp;amp;&amp;amp; (ev2.value == 1 || ev2.value == 2))&lt;br /&gt;
       { printf(&amp;quot;key %i state %i || LEFT ||\n&amp;quot;, ev2.code, ev2.value);&lt;br /&gt;
        dx = -5;&lt;br /&gt;
        dy = 0;&lt;br /&gt;
        &lt;br /&gt;
        &lt;br /&gt;
            memset(&amp;amp;ev, 0, sizeof(struct input_event));&lt;br /&gt;
            ev.type = EV_REL;&lt;br /&gt;
            ev.code = REL_X;&lt;br /&gt;
            ev.value = dx;&lt;br /&gt;
            if(write(fd, &amp;amp;ev, sizeof(struct input_event)) &amp;lt; 0)&lt;br /&gt;
                die(&amp;quot;error: write&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
            memset(&amp;amp;ev, 0, sizeof(struct input_event));&lt;br /&gt;
            ev.type = EV_REL;&lt;br /&gt;
            ev.code = REL_Y;&lt;br /&gt;
            ev.value = dy;&lt;br /&gt;
            if(write(fd, &amp;amp;ev, sizeof(struct input_event)) &amp;lt; 0)&lt;br /&gt;
                die(&amp;quot;error: write&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
            memset(&amp;amp;ev, 0, sizeof(struct input_event));&lt;br /&gt;
            ev.type = EV_SYN;&lt;br /&gt;
            ev.code = 0;&lt;br /&gt;
            ev.value = 0;&lt;br /&gt;
            if(write(fd, &amp;amp;ev, sizeof(struct input_event)) &amp;lt; 0)&lt;br /&gt;
                die(&amp;quot;error: write&amp;quot;);&lt;br /&gt;
			}&lt;br /&gt;
			&lt;br /&gt;
			&lt;br /&gt;
			if(ev2.type == 1 &amp;amp;&amp;amp; ev2.code == 106 &amp;amp;&amp;amp; (ev2.value == 1 || ev2.value == 2))&lt;br /&gt;
       { printf(&amp;quot;key %i state %i || RIGHT ||\n&amp;quot;, ev2.code, ev2.value);&lt;br /&gt;
        dx = 5;&lt;br /&gt;
        dy = 0;&lt;br /&gt;
        &lt;br /&gt;
        &lt;br /&gt;
            memset(&amp;amp;ev, 0, sizeof(struct input_event));&lt;br /&gt;
            ev.type = EV_REL;&lt;br /&gt;
            ev.code = REL_X;&lt;br /&gt;
            ev.value = dx;&lt;br /&gt;
            if(write(fd, &amp;amp;ev, sizeof(struct input_event)) &amp;lt; 0)&lt;br /&gt;
                die(&amp;quot;error: write&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
            memset(&amp;amp;ev, 0, sizeof(struct input_event));&lt;br /&gt;
            ev.type = EV_REL;&lt;br /&gt;
            ev.code = REL_Y;&lt;br /&gt;
            ev.value = dy;&lt;br /&gt;
            if(write(fd, &amp;amp;ev, sizeof(struct input_event)) &amp;lt; 0)&lt;br /&gt;
                die(&amp;quot;error: write&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
            memset(&amp;amp;ev, 0, sizeof(struct input_event));&lt;br /&gt;
            ev.type = EV_SYN;&lt;br /&gt;
            ev.code = 0;&lt;br /&gt;
            ev.value = 0;&lt;br /&gt;
            if(write(fd, &amp;amp;ev, sizeof(struct input_event)) &amp;lt; 0)&lt;br /&gt;
                die(&amp;quot;error: write&amp;quot;);&lt;br /&gt;
			}&lt;br /&gt;
			&lt;br /&gt;
			&lt;br /&gt;
			if(ev2.type == 1 &amp;amp;&amp;amp; ev2.code == 108 &amp;amp;&amp;amp; (ev2.value == 1 || ev2.value == 2))&lt;br /&gt;
       { printf(&amp;quot;key %i state %i || DOWN ||\n&amp;quot;, ev2.code, ev2.value);&lt;br /&gt;
        dx = 0;&lt;br /&gt;
        dy = 5;&lt;br /&gt;
        &lt;br /&gt;
        &lt;br /&gt;
            memset(&amp;amp;ev, 0, sizeof(struct input_event));&lt;br /&gt;
            ev.type = EV_REL;&lt;br /&gt;
            ev.code = REL_X;&lt;br /&gt;
            ev.value = dx;&lt;br /&gt;
            if(write(fd, &amp;amp;ev, sizeof(struct input_event)) &amp;lt; 0)&lt;br /&gt;
                die(&amp;quot;error: write&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
            memset(&amp;amp;ev, 0, sizeof(struct input_event));&lt;br /&gt;
            ev.type = EV_REL;&lt;br /&gt;
            ev.code = REL_Y;&lt;br /&gt;
            ev.value = dy;&lt;br /&gt;
            if(write(fd, &amp;amp;ev, sizeof(struct input_event)) &amp;lt; 0)&lt;br /&gt;
                die(&amp;quot;error: write&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
            memset(&amp;amp;ev, 0, sizeof(struct input_event));&lt;br /&gt;
            ev.type = EV_SYN;&lt;br /&gt;
            ev.code = 0;&lt;br /&gt;
            ev.value = 0;&lt;br /&gt;
            if(write(fd, &amp;amp;ev, sizeof(struct input_event)) &amp;lt; 0)&lt;br /&gt;
                die(&amp;quot;error: write&amp;quot;);&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
            usleep(15000);&lt;br /&gt;
&lt;br /&gt;
	} close(fd);&lt;br /&gt;
	  if(ioctl(fd, UI_DEV_DESTROY) &amp;lt; 0)&lt;br /&gt;
        die(&amp;quot;error: ioctl&amp;quot;);return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
#include &amp;lt;string.h&amp;gt;&lt;br /&gt;
#include &amp;lt;unistd.h&amp;gt;&lt;br /&gt;
#include &amp;lt;fcntl.h&amp;gt;&lt;br /&gt;
#include &amp;lt;errno.h&amp;gt;&lt;br /&gt;
#include &amp;lt;linux/input.h&amp;gt;&lt;br /&gt;
#include &amp;lt;linux/uinput.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define die(str, args...) do { \&lt;br /&gt;
        perror(str); \&lt;br /&gt;
        exit(EXIT_FAILURE); \&lt;br /&gt;
    } while(0)&lt;br /&gt;
&lt;br /&gt;
int&lt;br /&gt;
main(void)&lt;br /&gt;
{&lt;br /&gt;
    int                    fd;&lt;br /&gt;
    struct uinput_user_dev uidev;&lt;br /&gt;
    struct input_event     ev;&lt;br /&gt;
    int                    dx, dy;&lt;br /&gt;
    int                    i;&lt;br /&gt;
&lt;br /&gt;
    fd = open(&amp;quot;/dev/uinput&amp;quot;, O_WRONLY | O_NONBLOCK);&lt;br /&gt;
    if(fd &amp;lt; 0)&lt;br /&gt;
        die(&amp;quot;error: open&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    if(ioctl(fd, UI_SET_EVBIT, EV_KEY) &amp;lt; 0)&lt;br /&gt;
        die(&amp;quot;error: ioctl&amp;quot;);&lt;br /&gt;
    if(ioctl(fd, UI_SET_KEYBIT, BTN_LEFT) &amp;lt; 0)&lt;br /&gt;
        die(&amp;quot;error: ioctl&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    if(ioctl(fd, UI_SET_EVBIT, EV_REL) &amp;lt; 0)&lt;br /&gt;
        die(&amp;quot;error: ioctl&amp;quot;);&lt;br /&gt;
    if(ioctl(fd, UI_SET_RELBIT, REL_X) &amp;lt; 0)&lt;br /&gt;
        die(&amp;quot;error: ioctl&amp;quot;);&lt;br /&gt;
    if(ioctl(fd, UI_SET_RELBIT, REL_Y) &amp;lt; 0)&lt;br /&gt;
        die(&amp;quot;error: ioctl&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    memset(&amp;amp;uidev, 0, sizeof(uidev));&lt;br /&gt;
  snprintf(uidev.name, UINPUT_MAX_NAME_SIZE, &amp;quot;uinput-sample&amp;quot;);&lt;br /&gt;
    uidev.id.bustype = BUS_USB;&lt;br /&gt;
    uidev.id.vendor  = 0x1;&lt;br /&gt;
    uidev.id.product = 0x1;&lt;br /&gt;
    uidev.id.version = 1;&lt;br /&gt;
&lt;br /&gt;
    if(write(fd, &amp;amp;uidev, sizeof(uidev)) &amp;lt; 0)&lt;br /&gt;
        die(&amp;quot;error: write&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    if(ioctl(fd, UI_DEV_CREATE) &amp;lt; 0)&lt;br /&gt;
        die(&amp;quot;error: ioctl&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    sleep(2);&lt;br /&gt;
&lt;br /&gt;
		//=========================================&lt;br /&gt;
		    int fdd;&lt;br /&gt;
			struct input_event evv;&lt;br /&gt;
&lt;br /&gt;
			fdd = open(&amp;quot;/dev/input/event3&amp;quot;, O_RDONLY);&lt;br /&gt;
			if(fdd &amp;lt; 0) {&lt;br /&gt;
			printf(&amp;quot;error openning&amp;quot;);&lt;br /&gt;
			return 1;}&lt;br /&gt;
			&lt;br /&gt;
			&lt;br /&gt;
			&lt;br /&gt;
			&lt;br /&gt;
&lt;br /&gt;
			while(1){&lt;br /&gt;
			read(fdd, &amp;amp;evv, sizeof(struct input_event));&lt;br /&gt;
			if(evv.type ==1 ){&lt;br /&gt;
			//printf(&amp;quot;key %i state %i\n&amp;quot;, evv.code, evv.value);&lt;br /&gt;
			if(evv.code == 103){ dx = -0; dy = -10; }&lt;br /&gt;
			if(evv.code == 106){ dx = +10; dy = -0; }&lt;br /&gt;
			if(evv.code == 105){ dx = -10; dy = -0; }&lt;br /&gt;
			if(evv.code == 108){ dx = -0; dy = +10; }&lt;br /&gt;
			if(evv.code == 82){ puts(&amp;quot;Habara habara&amp;quot;); }&lt;br /&gt;
			&lt;br /&gt;
&lt;br /&gt;
			&lt;br /&gt;
		//=========================================&lt;br /&gt;
  &lt;br /&gt;
            //dx = -100;&lt;br /&gt;
            //dy = -10;&lt;br /&gt;
          &lt;br /&gt;
       &lt;br /&gt;
            memset(&amp;amp;ev, 0, sizeof(struct input_event));&lt;br /&gt;
            ev.type = EV_REL;&lt;br /&gt;
            ev.code = REL_X;&lt;br /&gt;
            ev.value = dx;&lt;br /&gt;
            if(write(fd, &amp;amp;ev, sizeof(struct input_event)) &amp;lt; 0)&lt;br /&gt;
                die(&amp;quot;error: write&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
            memset(&amp;amp;ev, 0, sizeof(struct input_event));&lt;br /&gt;
            ev.type = EV_REL;&lt;br /&gt;
            ev.code = REL_Y;&lt;br /&gt;
            ev.value = dy;&lt;br /&gt;
            if(write(fd, &amp;amp;ev, sizeof(struct input_event)) &amp;lt; 0)&lt;br /&gt;
                die(&amp;quot;error: write&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
            memset(&amp;amp;ev, 0, sizeof(struct input_event));&lt;br /&gt;
            ev.type = EV_SYN;&lt;br /&gt;
            ev.code = 0;&lt;br /&gt;
            ev.value = 0;&lt;br /&gt;
            if(write(fd, &amp;amp;ev, sizeof(struct input_event)) &amp;lt; 0)&lt;br /&gt;
                die(&amp;quot;error: write&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
            usleep(15000);&lt;br /&gt;
      }}&lt;br /&gt;
&lt;br /&gt;
    if(ioctl(fd, UI_DEV_DESTROY) &amp;lt; 0)&lt;br /&gt;
        die(&amp;quot;error: ioctl&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    close(fd);&lt;br /&gt;
&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/code&lt;/div&gt;</summary>
		<author><name>194.141.252.126</name></author>
	</entry>
	<entry>
		<id>https://ilianko.com/index.php?title=Talk:Uinput&amp;diff=657</id>
		<title>Talk:Uinput</title>
		<link rel="alternate" type="text/html" href="https://ilianko.com/index.php?title=Talk:Uinput&amp;diff=657"/>
		<updated>2011-04-14T09:29:00Z</updated>

		<summary type="html">&lt;p&gt;194.141.252.126: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Created by Dobril Todorov Marinov  grade III - Computer Peripherals&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
#include &amp;lt;string.h&amp;gt;&lt;br /&gt;
#include &amp;lt;unistd.h&amp;gt;&lt;br /&gt;
#include &amp;lt;fcntl.h&amp;gt;&lt;br /&gt;
#include &amp;lt;errno.h&amp;gt;&lt;br /&gt;
#include &amp;lt;linux/input.h&amp;gt;&lt;br /&gt;
#include &amp;lt;linux/uinput.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define die(str, args...) do { \&lt;br /&gt;
        perror(str); \&lt;br /&gt;
        exit(EXIT_FAILURE); \&lt;br /&gt;
    } while(0)&lt;br /&gt;
&lt;br /&gt;
int&lt;br /&gt;
main(void)&lt;br /&gt;
{&lt;br /&gt;
    int                    fd,fd1;&lt;br /&gt;
    struct uinput_user_dev uidev;&lt;br /&gt;
    struct input_event     ev;&lt;br /&gt;
    int                    dx, dy;&lt;br /&gt;
&lt;br /&gt;
    fd = open(&amp;quot;/dev/uinput&amp;quot;, O_WRONLY | O_NONBLOCK);&lt;br /&gt;
    if(fd &amp;lt; 0)&lt;br /&gt;
        die(&amp;quot;error: open&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    if(ioctl(fd, UI_SET_EVBIT, EV_KEY) &amp;lt; 0)&lt;br /&gt;
        die(&amp;quot;error: ioctl&amp;quot;);&lt;br /&gt;
    if(ioctl(fd, UI_SET_KEYBIT, BTN_LEFT) &amp;lt; 0)&lt;br /&gt;
        die(&amp;quot;error: ioctl&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    if(ioctl(fd, UI_SET_EVBIT, EV_REL) &amp;lt; 0)&lt;br /&gt;
        die(&amp;quot;error: ioctl&amp;quot;);&lt;br /&gt;
    if(ioctl(fd, UI_SET_RELBIT, REL_X) &amp;lt; 0)&lt;br /&gt;
        die(&amp;quot;error: ioctl&amp;quot;);&lt;br /&gt;
    if(ioctl(fd, UI_SET_RELBIT, REL_Y) &amp;lt; 0)&lt;br /&gt;
        die(&amp;quot;error: ioctl&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    memset(&amp;amp;uidev, 0, sizeof(uidev));&lt;br /&gt;
  snprintf(uidev.name, UINPUT_MAX_NAME_SIZE, &amp;quot;uinput-sample&amp;quot;);&lt;br /&gt;
    uidev.id.bustype = BUS_USB;&lt;br /&gt;
    uidev.id.vendor  = 0x1;&lt;br /&gt;
    uidev.id.product = 0x1;&lt;br /&gt;
    uidev.id.version = 1;&lt;br /&gt;
&lt;br /&gt;
    if(write(fd, &amp;amp;uidev, sizeof(uidev)) &amp;lt; 0)&lt;br /&gt;
        die(&amp;quot;error: write&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    if(ioctl(fd, UI_DEV_CREATE) &amp;lt; 0)&lt;br /&gt;
        die(&amp;quot;error: ioctl&amp;quot;);&lt;br /&gt;
        &lt;br /&gt;
        &lt;br /&gt;
    struct input_event ev2;&lt;br /&gt;
&lt;br /&gt;
    fd1 = open(&amp;quot;/dev/input/event3&amp;quot;, O_RDONLY);&lt;br /&gt;
           sleep(2);  &lt;br /&gt;
        while (1)&lt;br /&gt;
    {&lt;br /&gt;
    read(fd1, &amp;amp;ev2, sizeof(struct input_event));&lt;br /&gt;
&lt;br /&gt;
    if(ev2.type == 1 &amp;amp;&amp;amp; ev2.code == 103 &amp;amp;&amp;amp; (ev2.value == 1 || ev2.value == 2))&lt;br /&gt;
       { printf(&amp;quot;key %i state %i || UP ||\n&amp;quot;, ev2.code, ev2.value);&lt;br /&gt;
        dx = 0;&lt;br /&gt;
        dy = -5;&lt;br /&gt;
        &lt;br /&gt;
        &lt;br /&gt;
        &lt;br /&gt;
            memset(&amp;amp;ev, 0, sizeof(struct input_event));&lt;br /&gt;
            ev.type = EV_REL;&lt;br /&gt;
            ev.code = REL_X;&lt;br /&gt;
            ev.value = dx;&lt;br /&gt;
            if(write(fd, &amp;amp;ev, sizeof(struct input_event)) &amp;lt; 0)&lt;br /&gt;
                die(&amp;quot;error: write&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
            memset(&amp;amp;ev, 0, sizeof(struct input_event));&lt;br /&gt;
            ev.type = EV_REL;&lt;br /&gt;
            ev.code = REL_Y;&lt;br /&gt;
            ev.value = dy;&lt;br /&gt;
            if(write(fd, &amp;amp;ev, sizeof(struct input_event)) &amp;lt; 0)&lt;br /&gt;
                die(&amp;quot;error: write&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
            memset(&amp;amp;ev, 0, sizeof(struct input_event));&lt;br /&gt;
            ev.type = EV_SYN;&lt;br /&gt;
            ev.code = 0;&lt;br /&gt;
            ev.value = 0;&lt;br /&gt;
            if(write(fd, &amp;amp;ev, sizeof(struct input_event)) &amp;lt; 0)&lt;br /&gt;
                die(&amp;quot;error: write&amp;quot;);&lt;br /&gt;
			}&lt;br /&gt;
			&lt;br /&gt;
			if(ev2.type == 1 &amp;amp;&amp;amp; ev2.code == 105 &amp;amp;&amp;amp; (ev2.value == 1 || ev2.value == 2))&lt;br /&gt;
       { printf(&amp;quot;key %i state %i || LEFT ||\n&amp;quot;, ev2.code, ev2.value);&lt;br /&gt;
        dx = -5;&lt;br /&gt;
        dy = 0;&lt;br /&gt;
        &lt;br /&gt;
        &lt;br /&gt;
            memset(&amp;amp;ev, 0, sizeof(struct input_event));&lt;br /&gt;
            ev.type = EV_REL;&lt;br /&gt;
            ev.code = REL_X;&lt;br /&gt;
            ev.value = dx;&lt;br /&gt;
            if(write(fd, &amp;amp;ev, sizeof(struct input_event)) &amp;lt; 0)&lt;br /&gt;
                die(&amp;quot;error: write&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
            memset(&amp;amp;ev, 0, sizeof(struct input_event));&lt;br /&gt;
            ev.type = EV_REL;&lt;br /&gt;
            ev.code = REL_Y;&lt;br /&gt;
            ev.value = dy;&lt;br /&gt;
            if(write(fd, &amp;amp;ev, sizeof(struct input_event)) &amp;lt; 0)&lt;br /&gt;
                die(&amp;quot;error: write&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
            memset(&amp;amp;ev, 0, sizeof(struct input_event));&lt;br /&gt;
            ev.type = EV_SYN;&lt;br /&gt;
            ev.code = 0;&lt;br /&gt;
            ev.value = 0;&lt;br /&gt;
            if(write(fd, &amp;amp;ev, sizeof(struct input_event)) &amp;lt; 0)&lt;br /&gt;
                die(&amp;quot;error: write&amp;quot;);&lt;br /&gt;
			}&lt;br /&gt;
			&lt;br /&gt;
			&lt;br /&gt;
			if(ev2.type == 1 &amp;amp;&amp;amp; ev2.code == 106 &amp;amp;&amp;amp; (ev2.value == 1 || ev2.value == 2))&lt;br /&gt;
       { printf(&amp;quot;key %i state %i || RIGHT ||\n&amp;quot;, ev2.code, ev2.value);&lt;br /&gt;
        dx = 5;&lt;br /&gt;
        dy = 0;&lt;br /&gt;
        &lt;br /&gt;
        &lt;br /&gt;
            memset(&amp;amp;ev, 0, sizeof(struct input_event));&lt;br /&gt;
            ev.type = EV_REL;&lt;br /&gt;
            ev.code = REL_X;&lt;br /&gt;
            ev.value = dx;&lt;br /&gt;
            if(write(fd, &amp;amp;ev, sizeof(struct input_event)) &amp;lt; 0)&lt;br /&gt;
                die(&amp;quot;error: write&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
            memset(&amp;amp;ev, 0, sizeof(struct input_event));&lt;br /&gt;
            ev.type = EV_REL;&lt;br /&gt;
            ev.code = REL_Y;&lt;br /&gt;
            ev.value = dy;&lt;br /&gt;
            if(write(fd, &amp;amp;ev, sizeof(struct input_event)) &amp;lt; 0)&lt;br /&gt;
                die(&amp;quot;error: write&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
            memset(&amp;amp;ev, 0, sizeof(struct input_event));&lt;br /&gt;
            ev.type = EV_SYN;&lt;br /&gt;
            ev.code = 0;&lt;br /&gt;
            ev.value = 0;&lt;br /&gt;
            if(write(fd, &amp;amp;ev, sizeof(struct input_event)) &amp;lt; 0)&lt;br /&gt;
                die(&amp;quot;error: write&amp;quot;);&lt;br /&gt;
			}&lt;br /&gt;
			&lt;br /&gt;
			&lt;br /&gt;
			if(ev2.type == 1 &amp;amp;&amp;amp; ev2.code == 108 &amp;amp;&amp;amp; (ev2.value == 1 || ev2.value == 2))&lt;br /&gt;
       { printf(&amp;quot;key %i state %i || DOWN ||\n&amp;quot;, ev2.code, ev2.value);&lt;br /&gt;
        dx = 0;&lt;br /&gt;
        dy = 5;&lt;br /&gt;
        &lt;br /&gt;
        &lt;br /&gt;
            memset(&amp;amp;ev, 0, sizeof(struct input_event));&lt;br /&gt;
            ev.type = EV_REL;&lt;br /&gt;
            ev.code = REL_X;&lt;br /&gt;
            ev.value = dx;&lt;br /&gt;
            if(write(fd, &amp;amp;ev, sizeof(struct input_event)) &amp;lt; 0)&lt;br /&gt;
                die(&amp;quot;error: write&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
            memset(&amp;amp;ev, 0, sizeof(struct input_event));&lt;br /&gt;
            ev.type = EV_REL;&lt;br /&gt;
            ev.code = REL_Y;&lt;br /&gt;
            ev.value = dy;&lt;br /&gt;
            if(write(fd, &amp;amp;ev, sizeof(struct input_event)) &amp;lt; 0)&lt;br /&gt;
                die(&amp;quot;error: write&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
            memset(&amp;amp;ev, 0, sizeof(struct input_event));&lt;br /&gt;
            ev.type = EV_SYN;&lt;br /&gt;
            ev.code = 0;&lt;br /&gt;
            ev.value = 0;&lt;br /&gt;
            if(write(fd, &amp;amp;ev, sizeof(struct input_event)) &amp;lt; 0)&lt;br /&gt;
                die(&amp;quot;error: write&amp;quot;);&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
            usleep(15000);&lt;br /&gt;
&lt;br /&gt;
	} close(fd);&lt;br /&gt;
	  if(ioctl(fd, UI_DEV_DESTROY) &amp;lt; 0)&lt;br /&gt;
        die(&amp;quot;error: ioctl&amp;quot;);return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>194.141.252.126</name></author>
	</entry>
	<entry>
		<id>https://ilianko.com/index.php?title=Talk:Uinput&amp;diff=656</id>
		<title>Talk:Uinput</title>
		<link rel="alternate" type="text/html" href="https://ilianko.com/index.php?title=Talk:Uinput&amp;diff=656"/>
		<updated>2011-04-14T09:24:05Z</updated>

		<summary type="html">&lt;p&gt;194.141.252.126: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Created by Dobril Todorov Marinov  grade III - Computer Peripherals&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
#include &amp;lt;string.h&amp;gt;&lt;br /&gt;
#include &amp;lt;unistd.h&amp;gt;&lt;br /&gt;
#include &amp;lt;fcntl.h&amp;gt;&lt;br /&gt;
#include &amp;lt;errno.h&amp;gt;&lt;br /&gt;
#include &amp;lt;linux/input.h&amp;gt;&lt;br /&gt;
#include &amp;lt;linux/uinput.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define die(str, args...) do { \&lt;br /&gt;
        perror(str); \&lt;br /&gt;
        exit(EXIT_FAILURE); \&lt;br /&gt;
    } while(0)&lt;br /&gt;
&lt;br /&gt;
int&lt;br /&gt;
main(void)&lt;br /&gt;
{&lt;br /&gt;
    int                    fd,fd1;&lt;br /&gt;
    struct uinput_user_dev uidev;&lt;br /&gt;
    struct input_event     ev;&lt;br /&gt;
    int                    dx, dy;&lt;br /&gt;
&lt;br /&gt;
    fd = open(&amp;quot;/dev/uinput&amp;quot;, O_WRONLY | O_NONBLOCK);&lt;br /&gt;
    if(fd &amp;lt; 0)&lt;br /&gt;
        die(&amp;quot;error: open&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    if(ioctl(fd, UI_SET_EVBIT, EV_KEY) &amp;lt; 0)&lt;br /&gt;
        die(&amp;quot;error: ioctl&amp;quot;);&lt;br /&gt;
    if(ioctl(fd, UI_SET_KEYBIT, BTN_LEFT) &amp;lt; 0)&lt;br /&gt;
        die(&amp;quot;error: ioctl&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    if(ioctl(fd, UI_SET_EVBIT, EV_REL) &amp;lt; 0)&lt;br /&gt;
        die(&amp;quot;error: ioctl&amp;quot;);&lt;br /&gt;
    if(ioctl(fd, UI_SET_RELBIT, REL_X) &amp;lt; 0)&lt;br /&gt;
        die(&amp;quot;error: ioctl&amp;quot;);&lt;br /&gt;
    if(ioctl(fd, UI_SET_RELBIT, REL_Y) &amp;lt; 0)&lt;br /&gt;
        die(&amp;quot;error: ioctl&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    memset(&amp;amp;uidev, 0, sizeof(uidev));&lt;br /&gt;
  snprintf(uidev.name, UINPUT_MAX_NAME_SIZE, &amp;quot;uinput-sample&amp;quot;);&lt;br /&gt;
    uidev.id.bustype = BUS_USB;&lt;br /&gt;
    uidev.id.vendor  = 0x1;&lt;br /&gt;
    uidev.id.product = 0x1;&lt;br /&gt;
    uidev.id.version = 1;&lt;br /&gt;
&lt;br /&gt;
    if(write(fd, &amp;amp;uidev, sizeof(uidev)) &amp;lt; 0)&lt;br /&gt;
        die(&amp;quot;error: write&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    if(ioctl(fd, UI_DEV_CREATE) &amp;lt; 0)&lt;br /&gt;
        die(&amp;quot;error: ioctl&amp;quot;);&lt;br /&gt;
        &lt;br /&gt;
        &lt;br /&gt;
    struct input_event ev2;&lt;br /&gt;
&lt;br /&gt;
    fd1 = open(&amp;quot;/dev/input/event3&amp;quot;, O_RDONLY);&lt;br /&gt;
           sleep(2);  &lt;br /&gt;
        while (1)&lt;br /&gt;
    {&lt;br /&gt;
    read(fd1, &amp;amp;ev2, sizeof(struct input_event));&lt;br /&gt;
&lt;br /&gt;
    if(ev2.type == 1 &amp;amp;&amp;amp; ev2.code == 103 &amp;amp;&amp;amp; ev2.value == 1)&lt;br /&gt;
       { printf(&amp;quot;key %i state %i || UP ||\n&amp;quot;, ev2.code, ev2.value);&lt;br /&gt;
        dx = 0;&lt;br /&gt;
        dy = -5;&lt;br /&gt;
        &lt;br /&gt;
        &lt;br /&gt;
            memset(&amp;amp;ev, 0, sizeof(struct input_event));&lt;br /&gt;
            ev.type = EV_REL;&lt;br /&gt;
            ev.code = REL_X;&lt;br /&gt;
            ev.value = dx;&lt;br /&gt;
            if(write(fd, &amp;amp;ev, sizeof(struct input_event)) &amp;lt; 0)&lt;br /&gt;
                die(&amp;quot;error: write&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
            memset(&amp;amp;ev, 0, sizeof(struct input_event));&lt;br /&gt;
            ev.type = EV_REL;&lt;br /&gt;
            ev.code = REL_Y;&lt;br /&gt;
            ev.value = dy;&lt;br /&gt;
            if(write(fd, &amp;amp;ev, sizeof(struct input_event)) &amp;lt; 0)&lt;br /&gt;
                die(&amp;quot;error: write&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
            memset(&amp;amp;ev, 0, sizeof(struct input_event));&lt;br /&gt;
            ev.type = EV_SYN;&lt;br /&gt;
            ev.code = 0;&lt;br /&gt;
            ev.value = 0;&lt;br /&gt;
            if(write(fd, &amp;amp;ev, sizeof(struct input_event)) &amp;lt; 0)&lt;br /&gt;
                die(&amp;quot;error: write&amp;quot;);&lt;br /&gt;
			}&lt;br /&gt;
			&lt;br /&gt;
			if(ev2.type == 1 &amp;amp;&amp;amp; ev2.code == 105 &amp;amp;&amp;amp; ev2.value == 1)&lt;br /&gt;
       { printf(&amp;quot;key %i state %i || LEFT ||\n&amp;quot;, ev2.code, ev2.value);&lt;br /&gt;
        dx = -5;&lt;br /&gt;
        dy = 0;&lt;br /&gt;
        &lt;br /&gt;
        &lt;br /&gt;
            memset(&amp;amp;ev, 0, sizeof(struct input_event));&lt;br /&gt;
            ev.type = EV_REL;&lt;br /&gt;
            ev.code = REL_X;&lt;br /&gt;
            ev.value = dx;&lt;br /&gt;
            if(write(fd, &amp;amp;ev, sizeof(struct input_event)) &amp;lt; 0)&lt;br /&gt;
                die(&amp;quot;error: write&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
            memset(&amp;amp;ev, 0, sizeof(struct input_event));&lt;br /&gt;
            ev.type = EV_REL;&lt;br /&gt;
            ev.code = REL_Y;&lt;br /&gt;
            ev.value = dy;&lt;br /&gt;
            if(write(fd, &amp;amp;ev, sizeof(struct input_event)) &amp;lt; 0)&lt;br /&gt;
                die(&amp;quot;error: write&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
            memset(&amp;amp;ev, 0, sizeof(struct input_event));&lt;br /&gt;
            ev.type = EV_SYN;&lt;br /&gt;
            ev.code = 0;&lt;br /&gt;
            ev.value = 0;&lt;br /&gt;
            if(write(fd, &amp;amp;ev, sizeof(struct input_event)) &amp;lt; 0)&lt;br /&gt;
                die(&amp;quot;error: write&amp;quot;);&lt;br /&gt;
			}&lt;br /&gt;
			&lt;br /&gt;
			&lt;br /&gt;
			if(ev2.type == 1 &amp;amp;&amp;amp; ev2.code == 106 &amp;amp;&amp;amp; ev2.value == 1)&lt;br /&gt;
       { printf(&amp;quot;key %i state %i || RIGHT ||\n&amp;quot;, ev2.code, ev2.value);&lt;br /&gt;
        dx = 5;&lt;br /&gt;
        dy = 0;&lt;br /&gt;
        &lt;br /&gt;
        &lt;br /&gt;
            memset(&amp;amp;ev, 0, sizeof(struct input_event));&lt;br /&gt;
            ev.type = EV_REL;&lt;br /&gt;
            ev.code = REL_X;&lt;br /&gt;
            ev.value = dx;&lt;br /&gt;
            if(write(fd, &amp;amp;ev, sizeof(struct input_event)) &amp;lt; 0)&lt;br /&gt;
                die(&amp;quot;error: write&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
            memset(&amp;amp;ev, 0, sizeof(struct input_event));&lt;br /&gt;
            ev.type = EV_REL;&lt;br /&gt;
            ev.code = REL_Y;&lt;br /&gt;
            ev.value = dy;&lt;br /&gt;
            if(write(fd, &amp;amp;ev, sizeof(struct input_event)) &amp;lt; 0)&lt;br /&gt;
                die(&amp;quot;error: write&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
            memset(&amp;amp;ev, 0, sizeof(struct input_event));&lt;br /&gt;
            ev.type = EV_SYN;&lt;br /&gt;
            ev.code = 0;&lt;br /&gt;
            ev.value = 0;&lt;br /&gt;
            if(write(fd, &amp;amp;ev, sizeof(struct input_event)) &amp;lt; 0)&lt;br /&gt;
                die(&amp;quot;error: write&amp;quot;);&lt;br /&gt;
			}&lt;br /&gt;
			&lt;br /&gt;
			&lt;br /&gt;
			if(ev2.type == 1 &amp;amp;&amp;amp; ev2.code == 108 &amp;amp;&amp;amp; ev2.value == 1)&lt;br /&gt;
       { printf(&amp;quot;key %i state %i || DOWN ||\n&amp;quot;, ev2.code, ev2.value);&lt;br /&gt;
        dx = 0;&lt;br /&gt;
        dy = 5;&lt;br /&gt;
        &lt;br /&gt;
        &lt;br /&gt;
            memset(&amp;amp;ev, 0, sizeof(struct input_event));&lt;br /&gt;
            ev.type = EV_REL;&lt;br /&gt;
            ev.code = REL_X;&lt;br /&gt;
            ev.value = dx;&lt;br /&gt;
            if(write(fd, &amp;amp;ev, sizeof(struct input_event)) &amp;lt; 0)&lt;br /&gt;
                die(&amp;quot;error: write&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
            memset(&amp;amp;ev, 0, sizeof(struct input_event));&lt;br /&gt;
            ev.type = EV_REL;&lt;br /&gt;
            ev.code = REL_Y;&lt;br /&gt;
            ev.value = dy;&lt;br /&gt;
            if(write(fd, &amp;amp;ev, sizeof(struct input_event)) &amp;lt; 0)&lt;br /&gt;
                die(&amp;quot;error: write&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
            memset(&amp;amp;ev, 0, sizeof(struct input_event));&lt;br /&gt;
            ev.type = EV_SYN;&lt;br /&gt;
            ev.code = 0;&lt;br /&gt;
            ev.value = 0;&lt;br /&gt;
            if(write(fd, &amp;amp;ev, sizeof(struct input_event)) &amp;lt; 0)&lt;br /&gt;
                die(&amp;quot;error: write&amp;quot;);&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
            usleep(15000);&lt;br /&gt;
&lt;br /&gt;
	} close(fd);&lt;br /&gt;
	  if(ioctl(fd, UI_DEV_DESTROY) &amp;lt; 0)&lt;br /&gt;
        die(&amp;quot;error: ioctl&amp;quot;);return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>194.141.252.126</name></author>
	</entry>
	<entry>
		<id>https://ilianko.com/index.php?title=Talk:Uinput&amp;diff=655</id>
		<title>Talk:Uinput</title>
		<link rel="alternate" type="text/html" href="https://ilianko.com/index.php?title=Talk:Uinput&amp;diff=655"/>
		<updated>2011-04-14T09:20:26Z</updated>

		<summary type="html">&lt;p&gt;194.141.252.126: Created page with &amp;quot;&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;  #include &amp;lt;stdio.h&amp;gt; #include &amp;lt;stdlib.h&amp;gt; #include &amp;lt;string.h&amp;gt; #include &amp;lt;unistd.h&amp;gt; #include &amp;lt;fcntl.h&amp;gt; #include &amp;lt;errno.h&amp;gt; #include &amp;lt;linux/input.h&amp;gt; #include &amp;lt;linux/uinput....&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
#include &amp;lt;string.h&amp;gt;&lt;br /&gt;
#include &amp;lt;unistd.h&amp;gt;&lt;br /&gt;
#include &amp;lt;fcntl.h&amp;gt;&lt;br /&gt;
#include &amp;lt;errno.h&amp;gt;&lt;br /&gt;
#include &amp;lt;linux/input.h&amp;gt;&lt;br /&gt;
#include &amp;lt;linux/uinput.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define die(str, args...) do { \&lt;br /&gt;
        perror(str); \&lt;br /&gt;
        exit(EXIT_FAILURE); \&lt;br /&gt;
    } while(0)&lt;br /&gt;
&lt;br /&gt;
int&lt;br /&gt;
main(void)&lt;br /&gt;
{&lt;br /&gt;
    int                    fd,fd1;&lt;br /&gt;
    struct uinput_user_dev uidev;&lt;br /&gt;
    struct input_event     ev;&lt;br /&gt;
    int                    dx, dy;&lt;br /&gt;
&lt;br /&gt;
    fd = open(&amp;quot;/dev/uinput&amp;quot;, O_WRONLY | O_NONBLOCK);&lt;br /&gt;
    if(fd &amp;lt; 0)&lt;br /&gt;
        die(&amp;quot;error: open&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    if(ioctl(fd, UI_SET_EVBIT, EV_KEY) &amp;lt; 0)&lt;br /&gt;
        die(&amp;quot;error: ioctl&amp;quot;);&lt;br /&gt;
    if(ioctl(fd, UI_SET_KEYBIT, BTN_LEFT) &amp;lt; 0)&lt;br /&gt;
        die(&amp;quot;error: ioctl&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    if(ioctl(fd, UI_SET_EVBIT, EV_REL) &amp;lt; 0)&lt;br /&gt;
        die(&amp;quot;error: ioctl&amp;quot;);&lt;br /&gt;
    if(ioctl(fd, UI_SET_RELBIT, REL_X) &amp;lt; 0)&lt;br /&gt;
        die(&amp;quot;error: ioctl&amp;quot;);&lt;br /&gt;
    if(ioctl(fd, UI_SET_RELBIT, REL_Y) &amp;lt; 0)&lt;br /&gt;
        die(&amp;quot;error: ioctl&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    memset(&amp;amp;uidev, 0, sizeof(uidev));&lt;br /&gt;
  snprintf(uidev.name, UINPUT_MAX_NAME_SIZE, &amp;quot;uinput-sample&amp;quot;);&lt;br /&gt;
    uidev.id.bustype = BUS_USB;&lt;br /&gt;
    uidev.id.vendor  = 0x1;&lt;br /&gt;
    uidev.id.product = 0x1;&lt;br /&gt;
    uidev.id.version = 1;&lt;br /&gt;
&lt;br /&gt;
    if(write(fd, &amp;amp;uidev, sizeof(uidev)) &amp;lt; 0)&lt;br /&gt;
        die(&amp;quot;error: write&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    if(ioctl(fd, UI_DEV_CREATE) &amp;lt; 0)&lt;br /&gt;
        die(&amp;quot;error: ioctl&amp;quot;);&lt;br /&gt;
        &lt;br /&gt;
        &lt;br /&gt;
    struct input_event ev2;&lt;br /&gt;
&lt;br /&gt;
    fd1 = open(&amp;quot;/dev/input/event3&amp;quot;, O_RDONLY);&lt;br /&gt;
           sleep(2);  &lt;br /&gt;
        while (1)&lt;br /&gt;
    {&lt;br /&gt;
    read(fd1, &amp;amp;ev2, sizeof(struct input_event));&lt;br /&gt;
&lt;br /&gt;
    if(ev2.type == 1 &amp;amp;&amp;amp; ev2.code == 103 &amp;amp;&amp;amp; ev2.value == 1)&lt;br /&gt;
       { printf(&amp;quot;key %i state %i || UP ||\n&amp;quot;, ev2.code, ev2.value);&lt;br /&gt;
        dx = 0;&lt;br /&gt;
        dy = -5;&lt;br /&gt;
        &lt;br /&gt;
        &lt;br /&gt;
            memset(&amp;amp;ev, 0, sizeof(struct input_event));&lt;br /&gt;
            ev.type = EV_REL;&lt;br /&gt;
            ev.code = REL_X;&lt;br /&gt;
            ev.value = dx;&lt;br /&gt;
            if(write(fd, &amp;amp;ev, sizeof(struct input_event)) &amp;lt; 0)&lt;br /&gt;
                die(&amp;quot;error: write&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
            memset(&amp;amp;ev, 0, sizeof(struct input_event));&lt;br /&gt;
            ev.type = EV_REL;&lt;br /&gt;
            ev.code = REL_Y;&lt;br /&gt;
            ev.value = dy;&lt;br /&gt;
            if(write(fd, &amp;amp;ev, sizeof(struct input_event)) &amp;lt; 0)&lt;br /&gt;
                die(&amp;quot;error: write&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
            memset(&amp;amp;ev, 0, sizeof(struct input_event));&lt;br /&gt;
            ev.type = EV_SYN;&lt;br /&gt;
            ev.code = 0;&lt;br /&gt;
            ev.value = 0;&lt;br /&gt;
            if(write(fd, &amp;amp;ev, sizeof(struct input_event)) &amp;lt; 0)&lt;br /&gt;
                die(&amp;quot;error: write&amp;quot;);&lt;br /&gt;
			}&lt;br /&gt;
			&lt;br /&gt;
			if(ev2.type == 1 &amp;amp;&amp;amp; ev2.code == 105 &amp;amp;&amp;amp; ev2.value == 1)&lt;br /&gt;
       { printf(&amp;quot;key %i state %i || LEFT ||\n&amp;quot;, ev2.code, ev2.value);&lt;br /&gt;
        dx = -5;&lt;br /&gt;
        dy = 0;&lt;br /&gt;
        &lt;br /&gt;
        &lt;br /&gt;
            memset(&amp;amp;ev, 0, sizeof(struct input_event));&lt;br /&gt;
            ev.type = EV_REL;&lt;br /&gt;
            ev.code = REL_X;&lt;br /&gt;
            ev.value = dx;&lt;br /&gt;
            if(write(fd, &amp;amp;ev, sizeof(struct input_event)) &amp;lt; 0)&lt;br /&gt;
                die(&amp;quot;error: write&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
            memset(&amp;amp;ev, 0, sizeof(struct input_event));&lt;br /&gt;
            ev.type = EV_REL;&lt;br /&gt;
            ev.code = REL_Y;&lt;br /&gt;
            ev.value = dy;&lt;br /&gt;
            if(write(fd, &amp;amp;ev, sizeof(struct input_event)) &amp;lt; 0)&lt;br /&gt;
                die(&amp;quot;error: write&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
            memset(&amp;amp;ev, 0, sizeof(struct input_event));&lt;br /&gt;
            ev.type = EV_SYN;&lt;br /&gt;
            ev.code = 0;&lt;br /&gt;
            ev.value = 0;&lt;br /&gt;
            if(write(fd, &amp;amp;ev, sizeof(struct input_event)) &amp;lt; 0)&lt;br /&gt;
                die(&amp;quot;error: write&amp;quot;);&lt;br /&gt;
			}&lt;br /&gt;
			&lt;br /&gt;
			&lt;br /&gt;
			if(ev2.type == 1 &amp;amp;&amp;amp; ev2.code == 106 &amp;amp;&amp;amp; ev2.value == 1)&lt;br /&gt;
       { printf(&amp;quot;key %i state %i || RIGHT ||\n&amp;quot;, ev2.code, ev2.value);&lt;br /&gt;
        dx = 5;&lt;br /&gt;
        dy = 0;&lt;br /&gt;
        &lt;br /&gt;
        &lt;br /&gt;
            memset(&amp;amp;ev, 0, sizeof(struct input_event));&lt;br /&gt;
            ev.type = EV_REL;&lt;br /&gt;
            ev.code = REL_X;&lt;br /&gt;
            ev.value = dx;&lt;br /&gt;
            if(write(fd, &amp;amp;ev, sizeof(struct input_event)) &amp;lt; 0)&lt;br /&gt;
                die(&amp;quot;error: write&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
            memset(&amp;amp;ev, 0, sizeof(struct input_event));&lt;br /&gt;
            ev.type = EV_REL;&lt;br /&gt;
            ev.code = REL_Y;&lt;br /&gt;
            ev.value = dy;&lt;br /&gt;
            if(write(fd, &amp;amp;ev, sizeof(struct input_event)) &amp;lt; 0)&lt;br /&gt;
                die(&amp;quot;error: write&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
            memset(&amp;amp;ev, 0, sizeof(struct input_event));&lt;br /&gt;
            ev.type = EV_SYN;&lt;br /&gt;
            ev.code = 0;&lt;br /&gt;
            ev.value = 0;&lt;br /&gt;
            if(write(fd, &amp;amp;ev, sizeof(struct input_event)) &amp;lt; 0)&lt;br /&gt;
                die(&amp;quot;error: write&amp;quot;);&lt;br /&gt;
			}&lt;br /&gt;
			&lt;br /&gt;
			&lt;br /&gt;
			if(ev2.type == 1 &amp;amp;&amp;amp; ev2.code == 108 &amp;amp;&amp;amp; ev2.value == 1)&lt;br /&gt;
       { printf(&amp;quot;key %i state %i || DOWN ||\n&amp;quot;, ev2.code, ev2.value);&lt;br /&gt;
        dx = 0;&lt;br /&gt;
        dy = 5;&lt;br /&gt;
        &lt;br /&gt;
        &lt;br /&gt;
            memset(&amp;amp;ev, 0, sizeof(struct input_event));&lt;br /&gt;
            ev.type = EV_REL;&lt;br /&gt;
            ev.code = REL_X;&lt;br /&gt;
            ev.value = dx;&lt;br /&gt;
            if(write(fd, &amp;amp;ev, sizeof(struct input_event)) &amp;lt; 0)&lt;br /&gt;
                die(&amp;quot;error: write&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
            memset(&amp;amp;ev, 0, sizeof(struct input_event));&lt;br /&gt;
            ev.type = EV_REL;&lt;br /&gt;
            ev.code = REL_Y;&lt;br /&gt;
            ev.value = dy;&lt;br /&gt;
            if(write(fd, &amp;amp;ev, sizeof(struct input_event)) &amp;lt; 0)&lt;br /&gt;
                die(&amp;quot;error: write&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
            memset(&amp;amp;ev, 0, sizeof(struct input_event));&lt;br /&gt;
            ev.type = EV_SYN;&lt;br /&gt;
            ev.code = 0;&lt;br /&gt;
            ev.value = 0;&lt;br /&gt;
            if(write(fd, &amp;amp;ev, sizeof(struct input_event)) &amp;lt; 0)&lt;br /&gt;
                die(&amp;quot;error: write&amp;quot;);&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
            usleep(15000);&lt;br /&gt;
&lt;br /&gt;
	} close(fd);&lt;br /&gt;
	  if(ioctl(fd, UI_DEV_DESTROY) &amp;lt; 0)&lt;br /&gt;
        die(&amp;quot;error: ioctl&amp;quot;);return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>194.141.252.126</name></author>
	</entry>
	<entry>
		<id>https://ilianko.com/index.php?title=Talk:%D0%A3%D0%BF%D1%80%D0%B0%D0%B6%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_12._VPN&amp;diff=646</id>
		<title>Talk:Упражнение 12. VPN</title>
		<link rel="alternate" type="text/html" href="https://ilianko.com/index.php?title=Talk:%D0%A3%D0%BF%D1%80%D0%B0%D0%B6%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_12._VPN&amp;diff=646"/>
		<updated>2011-04-13T12:22:15Z</updated>

		<summary type="html">&lt;p&gt;194.141.252.126: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;tova uprazhnenie ne e [[interesno]] [[DNS]]&lt;br /&gt;
 &lt;br /&gt;
 defdefef&lt;br /&gt;
 fefefefe &lt;br /&gt;
 kjkjkjkj&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:dns.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
pishesh--[[Special:Contributions/194.141.252.126|194.141.252.126]] 15:17, 13 April 2011 (EEST)&lt;/div&gt;</summary>
		<author><name>194.141.252.126</name></author>
	</entry>
	<entry>
		<id>https://ilianko.com/index.php?title=Talk:%D0%A3%D0%BF%D1%80%D0%B0%D0%B6%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_12._VPN&amp;diff=645</id>
		<title>Talk:Упражнение 12. VPN</title>
		<link rel="alternate" type="text/html" href="https://ilianko.com/index.php?title=Talk:%D0%A3%D0%BF%D1%80%D0%B0%D0%B6%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_12._VPN&amp;diff=645"/>
		<updated>2011-04-13T12:17:23Z</updated>

		<summary type="html">&lt;p&gt;194.141.252.126: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;tova uprazhnenie ne e [[interesno]] [[DNS]]&lt;br /&gt;
 &lt;br /&gt;
 defdefef&lt;br /&gt;
 fefefefe &lt;br /&gt;
 kjkjkjkj&lt;br /&gt;
&lt;br /&gt;
[[Image:dns.png]]&lt;br /&gt;
&lt;br /&gt;
[[Category: Apache PHP MySQL]]&lt;br /&gt;
&lt;br /&gt;
pishesh--[[Special:Contributions/194.141.252.126|194.141.252.126]] 15:17, 13 April 2011 (EEST)&lt;/div&gt;</summary>
		<author><name>194.141.252.126</name></author>
	</entry>
	<entry>
		<id>https://ilianko.com/index.php?title=Talk:%D0%A3%D0%BF%D1%80%D0%B0%D0%B6%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_12._VPN&amp;diff=642</id>
		<title>Talk:Упражнение 12. VPN</title>
		<link rel="alternate" type="text/html" href="https://ilianko.com/index.php?title=Talk:%D0%A3%D0%BF%D1%80%D0%B0%D0%B6%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_12._VPN&amp;diff=642"/>
		<updated>2011-04-13T11:20:39Z</updated>

		<summary type="html">&lt;p&gt;194.141.252.126: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;tova uprazhnenie ne e [[interesno]] [[DNS]]&lt;br /&gt;
 &lt;br /&gt;
 defdefef&lt;br /&gt;
 fefefefe &lt;br /&gt;
 kjkjkjkj&lt;br /&gt;
&lt;br /&gt;
[[Image:dns.png]]&lt;br /&gt;
&lt;br /&gt;
[[Category: Apache PHP MySQL]]&lt;/div&gt;</summary>
		<author><name>194.141.252.126</name></author>
	</entry>
	<entry>
		<id>https://ilianko.com/index.php?title=Talk:%D0%A3%D0%BF%D1%80%D0%B0%D0%B6%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_12._VPN&amp;diff=641</id>
		<title>Talk:Упражнение 12. VPN</title>
		<link rel="alternate" type="text/html" href="https://ilianko.com/index.php?title=Talk:%D0%A3%D0%BF%D1%80%D0%B0%D0%B6%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_12._VPN&amp;diff=641"/>
		<updated>2011-04-13T11:19:38Z</updated>

		<summary type="html">&lt;p&gt;194.141.252.126: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;tova uprazhnenie ne e interesno [[DNS| tuk e informaciqta za dns]]&lt;br /&gt;
 &lt;br /&gt;
 defdefef&lt;br /&gt;
 fefefefe &lt;br /&gt;
 kjkjkjkj&lt;br /&gt;
&lt;br /&gt;
[[Image:dns.png]]&lt;br /&gt;
&lt;br /&gt;
[[Category: Apache PHP MySQL]]&lt;/div&gt;</summary>
		<author><name>194.141.252.126</name></author>
	</entry>
	<entry>
		<id>https://ilianko.com/index.php?title=Talk:%D0%A3%D0%BF%D1%80%D0%B0%D0%B6%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_12._VPN&amp;diff=640</id>
		<title>Talk:Упражнение 12. VPN</title>
		<link rel="alternate" type="text/html" href="https://ilianko.com/index.php?title=Talk:%D0%A3%D0%BF%D1%80%D0%B0%D0%B6%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_12._VPN&amp;diff=640"/>
		<updated>2011-04-13T11:18:49Z</updated>

		<summary type="html">&lt;p&gt;194.141.252.126: Created page with &amp;quot;tova uprazhnenie ne e interesno  tuk e informaciqta za dns    defdefef  fefefefe   kjkjkjkj  Category: Apache PHP MySQL&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;tova uprazhnenie ne e interesno [[DNS| tuk e informaciqta za dns]]&lt;br /&gt;
 &lt;br /&gt;
 defdefef&lt;br /&gt;
 fefefefe &lt;br /&gt;
 kjkjkjkj&lt;br /&gt;
&lt;br /&gt;
[[Category: Apache PHP MySQL]]&lt;/div&gt;</summary>
		<author><name>194.141.252.126</name></author>
	</entry>
	<entry>
		<id>https://ilianko.com/index.php?title=Talk:Windows_Apache_PHP_MySQL&amp;diff=394</id>
		<title>Talk:Windows Apache PHP MySQL</title>
		<link rel="alternate" type="text/html" href="https://ilianko.com/index.php?title=Talk:Windows_Apache_PHP_MySQL&amp;diff=394"/>
		<updated>2011-03-29T12:45:51Z</updated>

		<summary type="html">&lt;p&gt;194.141.252.126: Created page with &amp;quot;Image:op.png&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:op.png]]&lt;/div&gt;</summary>
		<author><name>194.141.252.126</name></author>
	</entry>
	<entry>
		<id>https://ilianko.com/index.php?title=Talk:Windows_2003_DNS,_Windows_XP_Mail_Server&amp;diff=386</id>
		<title>Talk:Windows 2003 DNS, Windows XP Mail Server</title>
		<link rel="alternate" type="text/html" href="https://ilianko.com/index.php?title=Talk:Windows_2003_DNS,_Windows_XP_Mail_Server&amp;diff=386"/>
		<updated>2011-03-29T12:10:07Z</updated>

		<summary type="html">&lt;p&gt;194.141.252.126: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;tova&#039;&#039;&#039; uprazhneninie ne stava za nishtp&lt;br /&gt;
--[[Special:Contributions/194.141.252.126|194.141.252.126]] 15:10, 29 March 2011 (EEST)&lt;/div&gt;</summary>
		<author><name>194.141.252.126</name></author>
	</entry>
	<entry>
		<id>https://ilianko.com/index.php?title=Talk:Windows_2003_DNS,_Windows_XP_Mail_Server&amp;diff=385</id>
		<title>Talk:Windows 2003 DNS, Windows XP Mail Server</title>
		<link rel="alternate" type="text/html" href="https://ilianko.com/index.php?title=Talk:Windows_2003_DNS,_Windows_XP_Mail_Server&amp;diff=385"/>
		<updated>2011-03-29T12:09:28Z</updated>

		<summary type="html">&lt;p&gt;194.141.252.126: Created page with &amp;quot;tova uprazhneninie ne stava za nishtp&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;tova uprazhneninie ne stava za nishtp&lt;/div&gt;</summary>
		<author><name>194.141.252.126</name></author>
	</entry>
	<entry>
		<id>https://ilianko.com/index.php?title=Talk:%D0%A1%D0%B5%D1%80%D0%B8%D0%B5%D0%BD_%D0%BF%D0%BE%D1%80%D1%82&amp;diff=287</id>
		<title>Talk:Сериен порт</title>
		<link rel="alternate" type="text/html" href="https://ilianko.com/index.php?title=Talk:%D0%A1%D0%B5%D1%80%D0%B8%D0%B5%D0%BD_%D0%BF%D0%BE%D1%80%D1%82&amp;diff=287"/>
		<updated>2011-03-24T08:55:08Z</updated>

		<summary type="html">&lt;p&gt;194.141.252.126: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== programata ne e vqrna ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
int x = 61;&lt;br /&gt;
char y;&lt;br /&gt;
y = (int) x;&lt;br /&gt;
printf( &amp;quot; %c &amp;quot;, y );&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
--[[Special:Contributions/194.141.252.126|194.141.252.126]] 10:55, 24 March 2011 (EET)&lt;/div&gt;</summary>
		<author><name>194.141.252.126</name></author>
	</entry>
	<entry>
		<id>https://ilianko.com/index.php?title=Talk:%D0%A1%D0%B5%D1%80%D0%B8%D0%B5%D0%BD_%D0%BF%D0%BE%D1%80%D1%82&amp;diff=286</id>
		<title>Talk:Сериен порт</title>
		<link rel="alternate" type="text/html" href="https://ilianko.com/index.php?title=Talk:%D0%A1%D0%B5%D1%80%D0%B8%D0%B5%D0%BD_%D0%BF%D0%BE%D1%80%D1%82&amp;diff=286"/>
		<updated>2011-03-24T08:54:49Z</updated>

		<summary type="html">&lt;p&gt;194.141.252.126: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== programata ne e vqrna ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
int x = 61;&lt;br /&gt;
char y;&lt;br /&gt;
y = (int) x;&lt;br /&gt;
printf( &amp;quot; %c &amp;quot;, y );&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>194.141.252.126</name></author>
	</entry>
	<entry>
		<id>https://ilianko.com/index.php?title=Talk:%D0%A1%D0%B5%D1%80%D0%B8%D0%B5%D0%BD_%D0%BF%D0%BE%D1%80%D1%82&amp;diff=285</id>
		<title>Talk:Сериен порт</title>
		<link rel="alternate" type="text/html" href="https://ilianko.com/index.php?title=Talk:%D0%A1%D0%B5%D1%80%D0%B8%D0%B5%D0%BD_%D0%BF%D0%BE%D1%80%D1%82&amp;diff=285"/>
		<updated>2011-03-24T08:54:31Z</updated>

		<summary type="html">&lt;p&gt;194.141.252.126: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;programata ne e vqrna&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
int x = 61;&lt;br /&gt;
char y;&lt;br /&gt;
y = (int) x;&lt;br /&gt;
printf( &amp;quot; %c &amp;quot;, y );&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>194.141.252.126</name></author>
	</entry>
	<entry>
		<id>https://ilianko.com/index.php?title=Talk:%D0%A1%D0%B5%D1%80%D0%B8%D0%B5%D0%BD_%D0%BF%D0%BE%D1%80%D1%82&amp;diff=284</id>
		<title>Talk:Сериен порт</title>
		<link rel="alternate" type="text/html" href="https://ilianko.com/index.php?title=Talk:%D0%A1%D0%B5%D1%80%D0%B8%D0%B5%D0%BD_%D0%BF%D0%BE%D1%80%D1%82&amp;diff=284"/>
		<updated>2011-03-24T08:53:17Z</updated>

		<summary type="html">&lt;p&gt;194.141.252.126: Created page with &amp;quot;programata ne e vqrna&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;programata ne e vqrna&lt;/div&gt;</summary>
		<author><name>194.141.252.126</name></author>
	</entry>
	<entry>
		<id>https://ilianko.com/index.php?title=Category:C_%D0%A1%D0%BF%D1%80%D0%B0%D0%B2%D0%BE%D1%87%D0%BD%D0%B8%D0%BA&amp;diff=193</id>
		<title>Category:C Справочник</title>
		<link rel="alternate" type="text/html" href="https://ilianko.com/index.php?title=Category:C_%D0%A1%D0%BF%D1%80%D0%B0%D0%B2%D0%BE%D1%87%D0%BD%D0%B8%D0%BA&amp;diff=193"/>
		<updated>2011-03-21T10:55:45Z</updated>

		<summary type="html">&lt;p&gt;194.141.252.126: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Справочник C (Ц)&lt;br /&gt;
&lt;br /&gt;
[[Category:POSIX]]&lt;/div&gt;</summary>
		<author><name>194.141.252.126</name></author>
	</entry>
	<entry>
		<id>https://ilianko.com/index.php?title=%D0%A1%D0%B5%D1%80%D0%B8%D0%B5%D0%BD_%D0%BF%D0%BE%D1%80%D1%82&amp;diff=109</id>
		<title>Сериен порт</title>
		<link rel="alternate" type="text/html" href="https://ilianko.com/index.php?title=%D0%A1%D0%B5%D1%80%D0%B8%D0%B5%D0%BD_%D0%BF%D0%BE%D1%80%D1%82&amp;diff=109"/>
		<updated>2011-03-19T13:58:49Z</updated>

		<summary type="html">&lt;p&gt;194.141.252.126: /* Сериен порт */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Сериен порт ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;termios.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;unistd.h&amp;gt;&lt;br /&gt;
#include &amp;lt;fcntl.h&amp;gt;&lt;br /&gt;
      &lt;br /&gt;
#define BAUDRATE B2400&lt;br /&gt;
#define MODEMDEVICE &amp;quot;/dev/ttyS0&amp;quot;&lt;br /&gt;
       &lt;br /&gt;
 int  main()&lt;br /&gt;
 {&lt;br /&gt;
 &lt;br /&gt;
        int fd,c, res, stop = 0;&lt;br /&gt;
        struct termios oldtio,newtio;&lt;br /&gt;
        char buf[255];&lt;br /&gt;
        &lt;br /&gt;
        /* open the device to be non-blocking (read will return immediatly) */&lt;br /&gt;
        fd = open(MODEMDEVICE, O_RDWR | O_NOCTTY | O_NONBLOCK);&lt;br /&gt;
        if (fd &amp;lt; 0) {perror(MODEMDEVICE); exit(-1);}&lt;br /&gt;
        &lt;br /&gt;
        fcntl(fd, F_SETFL, 0);&lt;br /&gt;
	    fcntl(fd, F_SETFL, FNDELAY);        &lt;br /&gt;
        &lt;br /&gt;
        &lt;br /&gt;
               &lt;br /&gt;
        tcgetattr(fd,&amp;amp;oldtio); /* save current port settings */&lt;br /&gt;
        /* set new port settings for canonical input processing */&lt;br /&gt;
        newtio.c_cflag = BAUDRATE | CRTSCTS | CS8 | CLOCAL | CREAD;&lt;br /&gt;
        newtio.c_iflag = IGNPAR | ICRNL;&lt;br /&gt;
        newtio.c_oflag = 0;&lt;br /&gt;
        newtio.c_lflag = ICANON;&lt;br /&gt;
        &lt;br /&gt;
        tcflush(fd, TCIFLUSH);&lt;br /&gt;
        &lt;br /&gt;
            newtio.c_iflag &amp;amp;= ~(IGNBRK|BRKINT|PARMRK|ISTRIP|INLCR|IGNCR|ICRNL|IXON);&lt;br /&gt;
            newtio.c_cflag &amp;amp;= ~( CRTSCTS );&lt;br /&gt;
            newtio.c_oflag &amp;amp;= ~OPOST;&lt;br /&gt;
            newtio.c_lflag &amp;amp;= ~(ECHO|ECHONL|ICANON|ISIG|IEXTEN);&lt;br /&gt;
            newtio.c_cflag &amp;amp;= ~(CSIZE|PARENB);&lt;br /&gt;
            newtio.c_cflag |= CS8;&lt;br /&gt;
        &lt;br /&gt;
        newtio.c_cc[VMIN]=1;&lt;br /&gt;
        newtio.c_cc[VTIME]=0;&lt;br /&gt;
        tcsetattr(fd,TCSANOW,&amp;amp;newtio);&lt;br /&gt;
         &lt;br /&gt;
        /* loop while waiting for input. normally we would do something&lt;br /&gt;
           useful here */ &lt;br /&gt;
              &lt;br /&gt;
    while ( stop == 0)&lt;br /&gt;
	{&lt;br /&gt;
         &lt;br /&gt;
         usleep(100); &lt;br /&gt;
         fflush (stdout);&lt;br /&gt;
         res = read(fd,buf,10);&lt;br /&gt;
            // strcat(buf,buf2);&lt;br /&gt;
          &lt;br /&gt;
            for( c=0;c&amp;lt;res; c=c+1)&lt;br /&gt;
            {&lt;br /&gt;
              if ( buf[c] == 0xd )  &lt;br /&gt;
              printf (&amp;quot;\n&amp;quot;);&lt;br /&gt;
              else &lt;br /&gt;
              {&lt;br /&gt;
				  if (buf[c] == 0x61) { printf(&amp;quot;oko&amp;quot;);stop = 1;}&lt;br /&gt;
				  printf(&amp;quot;%c&amp;quot;, (char) buf[c]);&lt;br /&gt;
			  }&lt;br /&gt;
            &lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        /* restore old port settings */&lt;br /&gt;
        tcsetattr(fd,TCSANOW,&amp;amp;oldtio);&lt;br /&gt;
 return 0;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>194.141.252.126</name></author>
	</entry>
	<entry>
		<id>https://ilianko.com/index.php?title=%D0%A1%D0%B5%D1%80%D0%B8%D0%B5%D0%BD_%D0%BF%D0%BE%D1%80%D1%82&amp;diff=108</id>
		<title>Сериен порт</title>
		<link rel="alternate" type="text/html" href="https://ilianko.com/index.php?title=%D0%A1%D0%B5%D1%80%D0%B8%D0%B5%D0%BD_%D0%BF%D0%BE%D1%80%D1%82&amp;diff=108"/>
		<updated>2011-03-19T12:34:07Z</updated>

		<summary type="html">&lt;p&gt;194.141.252.126: Created page with &amp;quot;==Сериен порт ==&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Сериен порт ==&lt;/div&gt;</summary>
		<author><name>194.141.252.126</name></author>
	</entry>
	<entry>
		<id>https://ilianko.com/index.php?title=%D0%A3%D0%BF%D1%8A%D1%82%D0%B2%D0%B0%D0%BD%D0%B5&amp;diff=101</id>
		<title>Упътване</title>
		<link rel="alternate" type="text/html" href="https://ilianko.com/index.php?title=%D0%A3%D0%BF%D1%8A%D1%82%D0%B2%D0%B0%D0%BD%D0%B5&amp;diff=101"/>
		<updated>2011-03-17T07:57:54Z</updated>

		<summary type="html">&lt;p&gt;194.141.252.126: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Как се създава нова страница&lt;br /&gt;
&lt;br /&gt;
[http://ilianko.com/index.php?title=MediaWiki:Sidebar&amp;amp;action=edit kskfakfaskfas&lt;/div&gt;</summary>
		<author><name>194.141.252.126</name></author>
	</entry>
	<entry>
		<id>https://ilianko.com/index.php?title=%D0%A3%D0%BF%D1%8A%D1%82%D0%B2%D0%B0%D0%BD%D0%B5&amp;diff=100</id>
		<title>Упътване</title>
		<link rel="alternate" type="text/html" href="https://ilianko.com/index.php?title=%D0%A3%D0%BF%D1%8A%D1%82%D0%B2%D0%B0%D0%BD%D0%B5&amp;diff=100"/>
		<updated>2011-03-17T07:45:31Z</updated>

		<summary type="html">&lt;p&gt;194.141.252.126: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Как се създава нова страница&lt;br /&gt;
&lt;br /&gt;
[http://ilianko.com/index.php?title=MediaWiki:Sidebar&amp;amp;action=edit ssssss&lt;/div&gt;</summary>
		<author><name>194.141.252.126</name></author>
	</entry>
	<entry>
		<id>https://ilianko.com/index.php?title=Thinking_in_C_Beta_3&amp;diff=75</id>
		<title>Thinking in C Beta 3</title>
		<link rel="alternate" type="text/html" href="https://ilianko.com/index.php?title=Thinking_in_C_Beta_3&amp;diff=75"/>
		<updated>2011-03-16T10:40:07Z</updated>

		<summary type="html">&lt;p&gt;194.141.252.126: Created page with &amp;quot;A Flash-based audio-visual seminar to introduce you to the fundamentals of the C language which will help you move on to C-based languages like C++, Java and C#. This seminar was...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A Flash-based audio-visual seminar to introduce you to the fundamentals of the C language which will help you move on to C-based languages like C++, Java and C#. This seminar was formerly delivered on the CD-ROM bound into the 2nd and 3rd editions of Thinking in Java, and the 2nd edition, Volume 1 of Thinking in C++.&lt;br /&gt;
&lt;br /&gt;
[[File:Thinking in C]]&lt;br /&gt;
&lt;br /&gt;
[http://mindview.net/CDs/ThinkingInC/beta3]&lt;/div&gt;</summary>
		<author><name>194.141.252.126</name></author>
	</entry>
	<entry>
		<id>https://ilianko.com/index.php?title=Talk:%D0%A3%D0%BF%D1%80%D0%B0%D0%B6%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_2._%D0%94%D0%BE%D1%81%D1%82%D1%8A%D0%BF_%D0%B4%D0%BE_%D0%BF%D0%B5%D1%80%D0%B8%D1%84%D0%B5%D1%80%D0%BD%D0%B8_%D1%83%D1%81%D1%82%D1%80%D0%BE%D0%B9%D1%81%D1%82%D0%B2%D0%B0.&amp;diff=45</id>
		<title>Talk:Упражнение 2. Достъп до периферни устройства.</title>
		<link rel="alternate" type="text/html" href="https://ilianko.com/index.php?title=Talk:%D0%A3%D0%BF%D1%80%D0%B0%D0%B6%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_2._%D0%94%D0%BE%D1%81%D1%82%D1%8A%D0%BF_%D0%B4%D0%BE_%D0%BF%D0%B5%D1%80%D0%B8%D1%84%D0%B5%D1%80%D0%BD%D0%B8_%D1%83%D1%81%D1%82%D1%80%D0%BE%D0%B9%D1%81%D1%82%D0%B2%D0%B0.&amp;diff=45"/>
		<updated>2011-03-15T13:48:13Z</updated>

		<summary type="html">&lt;p&gt;194.141.252.126: Created page with &amp;quot;tuk se pishe vsichko neqsno&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;tuk se pishe vsichko neqsno&lt;/div&gt;</summary>
		<author><name>194.141.252.126</name></author>
	</entry>
</feed>