<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fi">
	<id>https://www.linux.fi/w/index.php?action=history&amp;feed=atom&amp;title=Read%28%29</id>
	<title>Read() - Muutoshistoria</title>
	<link rel="self" type="application/atom+xml" href="https://www.linux.fi/w/index.php?action=history&amp;feed=atom&amp;title=Read%28%29"/>
	<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=Read()&amp;action=history"/>
	<updated>2026-05-01T06:58:12Z</updated>
	<subtitle>Tämän sivun muutoshistoria</subtitle>
	<generator>MediaWiki 1.44.2</generator>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=Read()&amp;diff=57529&amp;oldid=prev</id>
		<title>NasmHerra: Ak: Uusi sivu: &#039;&#039;&#039;Read()&#039;&#039;&#039; on C-standardikirjaston tarjoama funktio, jolla voi lukea tietyn määrän dataa tiedostosta. Funktio kutsuu samannimisen järjestelmäkutsun. Kaikki korkeamma...</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=Read()&amp;diff=57529&amp;oldid=prev"/>
		<updated>2022-05-14T21:36:19Z</updated>

		<summary type="html">&lt;p&gt;Ak: Uusi sivu: &amp;#039;&amp;#039;&amp;#039;Read()&amp;#039;&amp;#039;&amp;#039; on &lt;a href=&quot;/wiki/C-standardikirjasto&quot; class=&quot;mw-redirect&quot; title=&quot;C-standardikirjasto&quot;&gt;C-standardikirjaston&lt;/a&gt; tarjoama funktio, jolla voi lukea tietyn määrän dataa tiedostosta. Funktio kutsuu samannimisen &lt;a href=&quot;/wiki/J%C3%A4rjestelm%C3%A4kutsu&quot; title=&quot;Järjestelmäkutsu&quot;&gt;järjestelmäkutsun&lt;/a&gt;. Kaikki korkeamma...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Uusi sivu&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Read()&amp;#039;&amp;#039;&amp;#039; on [[C-standardikirjasto]]n tarjoama funktio, jolla voi lukea tietyn määrän dataa tiedostosta. Funktio kutsuu samannimisen [[järjestelmäkutsu]]n. Kaikki korkeamman tason input-funktiot, kuten [[fgets()]], käyttää Read-funktiota. Read-funtkio on määritelty seuraavasti:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
ssize_t read(int fd, void *buf, size_t count);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Turvallisuus==&lt;br /&gt;
Read-funktio on huomattavasti turvallisempi kuin esimerkiksi [[scanf()]] tai [[gets()]], koska se lukee vain tietyn määrän dataa. Siten ohjelmoija pystyy estämään [[ylivuoto|ylivuodot]].&lt;br /&gt;
&lt;br /&gt;
==Esimerkki==&lt;br /&gt;
Seuraava ohjelma lukee tiedoston /root/example.txt sisällön ilman virheenhallintaa:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;malloc.h&amp;gt;&lt;br /&gt;
#include &amp;lt;fcntl.h&amp;gt;&lt;br /&gt;
#include &amp;lt;unistd.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int main(int argc, char **argv) {&lt;br /&gt;
    const char filename[] = &amp;quot;/root/example.txt&amp;quot;;&lt;br /&gt;
    off_t filesize;&lt;br /&gt;
    off_t oldoffset;&lt;br /&gt;
    int fd;&lt;br /&gt;
    unsigned char *buf;&lt;br /&gt;
&lt;br /&gt;
    fd = open(filename, O_RDONLY);&lt;br /&gt;
    oldoffset = lseek(fd, 0, SEEK_CUR);&lt;br /&gt;
    filesize = lseek(fd, 0, SEEK_END);&lt;br /&gt;
    lseek(fd, oldoffset, SEEK_SET);&lt;br /&gt;
&lt;br /&gt;
    buf = malloc(filesize);&lt;br /&gt;
    read(fd, buf, filesize);&lt;br /&gt;
    free(buf);&lt;br /&gt;
    close(fd);&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Luokka:C-standardikirjasto]]&lt;/div&gt;</summary>
		<author><name>NasmHerra</name></author>
	</entry>
</feed>