C-ben alacsony szintű fájlkezelés, valami hiba van a 20 soros programomban, de már 6x újra írtam és nem értem mi a gond, esetleg a gépemben keressem a hibát?
Egyébként a fájlnevet leszámítva egy az egyben a gyakorló példákból van kiszedve, tehát ha ez rossz akkor a példa is rossz amit próbálok gyakorolni, csak már órák óta ülök felette és kissé kezdem felhúzni magamat.
#include <stdio.h>
#include <sys/stat.h>
#include <fcntl.h>
#define fnev "./gyakszi.txt"
void main(void)
{
int f1=0;
char szoveg[]="Saját nevem: Hentes";
f1=open(fnev, O_CREAT|O_RDWR|O_TRUNC, S_IREAD|S_IWRITE);
printf("%d\n\n", f1);
f1=write(fnev, &szoveg[0], 3);
printf("%d\n\n", f1);
close(f1);
return 0;
}
A write után -1-et ad ami ha minden igaz a hiba üzenetet jelenti, hogy nem sikerült.(a fájlba se ír bele semmit, tehát gyanítom azt jelenti).
Segítségeteket köszönöm előre is!
Éppenséggel a tanárok által kiadott jegyzetet és feladatokat olvasgatom(amiből eddig egyik sem futott le a gépemen).
Amit kihagytam: órán sikerült lefutó programot csinálnunk, de azt 7 pecsétes titkok védik és se emailban se pendrive-on nem hozhatom haza, hogy esetleg működő programokkal gyakorolhassak.
Egyébként ha észrevetted a hibámat megoszthatnád, hidd el nagyon örülnék neki.
Elnézted a "write" funkció első paraméterét,
a "write" funkció visszatérési értékét,
és a "main" funkció visszatérési értékét.
#include <stdio.h>
#include <sys/stat.h>
#include <fcntl.h>
#define fnev "./gyakszi.txt"
int main(void)
{
int f1 = 0;
char szoveg[] = "Saját nevem: Hentes";
f1 = open(fnev, O_CREAT|O_RDWR|O_TRUNC, S_IREAD|S_IWRITE);
printf("%d\n\n", f1);
if (f1 >= 0) {
int nwritten = write(f1, &szoveg[0], 3);
printf("%d\n\n", nwritten);
close(f1);
}
return 0;
}
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!