<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://so.v2.cs.unibo.it/wiki/index.php?action=history&amp;feed=atom&amp;title=Syscall_per_file_system%3A_equivalenza_comandi</id>
	<title>Syscall per file system: equivalenza comandi - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://so.v2.cs.unibo.it/wiki/index.php?action=history&amp;feed=atom&amp;title=Syscall_per_file_system%3A_equivalenza_comandi"/>
	<link rel="alternate" type="text/html" href="https://so.v2.cs.unibo.it/wiki/index.php?title=Syscall_per_file_system:_equivalenza_comandi&amp;action=history"/>
	<updated>2026-04-26T05:21:05Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.35.5</generator>
	<entry>
		<id>https://so.v2.cs.unibo.it/wiki/index.php?title=Syscall_per_file_system:_equivalenza_comandi&amp;diff=3098&amp;oldid=prev</id>
		<title>Renzo at 10:56, 13 November 2025</title>
		<link rel="alternate" type="text/html" href="https://so.v2.cs.unibo.it/wiki/index.php?title=Syscall_per_file_system:_equivalenza_comandi&amp;diff=3098&amp;oldid=prev"/>
		<updated>2025-11-13T10:56:24Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left diff-editfont-monospace&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 10:56, 13 November 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l20&quot; &gt;Line 20:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 20:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;// create symbolic link                                                                                                                                                 &lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;// create symbolic link                                                                                                                                                 &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;link&lt;/del&gt;(&amp;quot;vecchio&amp;quot;, &amp;quot;/tmp/nuovolink&amp;quot;)        ln -s vecchio /tmp/nuovolink                                                                                                   &lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;symlink&lt;/ins&gt;(&amp;quot;vecchio&amp;quot;, &amp;quot;/tmp/nuovolink&amp;quot;)        ln -s vecchio /tmp/nuovolink                                                                                                   &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;// delete one name of a file,                                                                                                                                           &lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;// delete one name of a file,                                                                                                                                           &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Renzo</name></author>
	</entry>
	<entry>
		<id>https://so.v2.cs.unibo.it/wiki/index.php?title=Syscall_per_file_system:_equivalenza_comandi&amp;diff=3094&amp;oldid=prev</id>
		<title>Renzo: Created page with &quot;&lt;pre&gt; tutte queste syscall restituiscono il valore 0 se l'operazione ha                                                                                                       s...&quot;</title>
		<link rel="alternate" type="text/html" href="https://so.v2.cs.unibo.it/wiki/index.php?title=Syscall_per_file_system:_equivalenza_comandi&amp;diff=3094&amp;oldid=prev"/>
		<updated>2025-11-11T16:59:17Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;&amp;lt;pre&amp;gt; tutte queste syscall restituiscono il valore 0 se l&amp;#039;operazione ha                                                                                                       s...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
tutte queste syscall restituiscono il valore 0 se l'operazione ha                                                                                                      &lt;br /&gt;
successo o -1 in caso di errore (il tipo di errore lo si legge nella                                                                                                   &lt;br /&gt;
                &amp;quot;variabile&amp;quot; errno).                                                                                                                                    &lt;br /&gt;
Le system call indicate con (R!) possono essere eseguite solo da                                                                                                       &lt;br /&gt;
utenti privilegiati (root)                                                                                                                                             &lt;br /&gt;
&lt;br /&gt;
// change working directory                                                                                                                                            &lt;br /&gt;
chdir(&amp;quot;/home/user&amp;quot;)                      cd /home/user                                                                                                                 &lt;br /&gt;
&lt;br /&gt;
// create directory                                                                                                                                         &lt;br /&gt;
mkdir(&amp;quot;/tmp/mydir&amp;quot;, 0755)                mkdir -m 755 /tmp/mydir                                                                                                       &lt;br /&gt;
&lt;br /&gt;
// remove (empty) directory                                                                                                                                            &lt;br /&gt;
rmdir(&amp;quot;/tmp/olddir&amp;quot;)                     rmdir /tmp/olddir                                                                                                             &lt;br /&gt;
&lt;br /&gt;
// create (hard) link:                                                                                                                                                 &lt;br /&gt;
// add one more name to a file                                                                                                                                         &lt;br /&gt;
link(&amp;quot;vecchio&amp;quot;, &amp;quot;/tmp/nuovo&amp;quot;)            ln vecchio /tmp/nuovo                                                                                                         &lt;br /&gt;
&lt;br /&gt;
// create symbolic link                                                                                                                                                &lt;br /&gt;
link(&amp;quot;vecchio&amp;quot;, &amp;quot;/tmp/nuovolink&amp;quot;)        ln -s vecchio /tmp/nuovolink                                                                                                  &lt;br /&gt;
&lt;br /&gt;
// delete one name of a file,                                                                                                                                          &lt;br /&gt;
// removed it when it has no more names                                                                                                                                &lt;br /&gt;
unlink(&amp;quot;/tmp/dacancellare&amp;quot;)              rm /tmp/dacancellare                                                                                                          &lt;br /&gt;
&lt;br /&gt;
// rename a file (atomically!)                                                                                                                                         &lt;br /&gt;
rename(&amp;quot;vecchionome&amp;quot;, &amp;quot;nuovonome&amp;quot;)       rename vecchionome nuovonome                                                                                                  &lt;br /&gt;
&lt;br /&gt;
// get file info (show i-node data)                                                                                                                                    &lt;br /&gt;
struct stat buf;                                                                                                                                &lt;br /&gt;
stat(&amp;quot;/tmp/symlink&amp;quot;, &amp;amp;buf)               stat -f /tmp/symlink                                                                                                          &lt;br /&gt;
/* le info vengono scritte in buf */                                                                                                                                   &lt;br /&gt;
&lt;br /&gt;
// get file info                                                                                                                                &lt;br /&gt;
// (do not follow symbolic links)                                                                                                                                      &lt;br /&gt;
struct stat buf;                                                                                                                                &lt;br /&gt;
lstat(&amp;quot;/tmp/symlink&amp;quot;, &amp;amp;buf)               stat /tmp/symlink                                                                                                            &lt;br /&gt;
/* le info vengono scritte in buf */                                                                                                                                   &lt;br /&gt;
&lt;br /&gt;
// change file permissions                                                                                                                                             &lt;br /&gt;
chmod(&amp;quot;/tmp/miofile&amp;quot;, 0750)               chmod 0750 /tmp/miofile                                                                                                      &lt;br /&gt;
&lt;br /&gt;
// change file ownership (R!)&lt;br /&gt;
chown(&amp;quot;/tmp/miofile&amp;quot;, 1000, 1000)         chown 1000:1000 /tmp/miofile&lt;br /&gt;
/* il primo 1000 è l'user-id (uid),&lt;br /&gt;
         il secondo è il group-id (gid) */&lt;br /&gt;
&lt;br /&gt;
// change file ownership (R!)&lt;br /&gt;
// (do not follow symbolic links)&lt;br /&gt;
lchown(&amp;quot;/tmp/miofile&amp;quot;, 1000, 1000)         chown -P 1000:1000 /tmp/miofile&lt;br /&gt;
/* il primo 1000 è l'user-id (uid),&lt;br /&gt;
         il secondo è il group-id (gid) */&lt;br /&gt;
&lt;br /&gt;
// truncate the contents of a file to a specific length&lt;br /&gt;
truncate(&amp;quot;/tmp/file&amp;quot;, 420)                 truncate -s 420 /tmp/file&lt;br /&gt;
&lt;br /&gt;
// get info of a mounted file system&lt;br /&gt;
struct statfs buf;&lt;br /&gt;
statfs(&amp;quot;/&amp;quot;, &amp;amp;buf)                          statfs /&lt;br /&gt;
/* le info vengono scritte in buf */&lt;br /&gt;
&lt;br /&gt;
// change root directory (R!)&lt;br /&gt;
chroot(&amp;quot;/tmp/newroot&amp;quot;)                     chroot /tmp/newroot&lt;br /&gt;
&lt;br /&gt;
// mount a filesystem (R!)&lt;br /&gt;
mount(&amp;quot;/dev/hda0&amp;quot;, &amp;quot;/mnt&amp;quot;, &amp;quot;ext4&amp;quot;, MS_RDONLY, &amp;quot;&amp;quot;)&lt;br /&gt;
                                           mount -o ro -t ext4 /dev/hda0 /mnt&lt;br /&gt;
&lt;br /&gt;
// umount a filesystem (R!)&lt;br /&gt;
umount(&amp;quot;/mnt&amp;quot;)                             umount /mnt&lt;br /&gt;
&lt;br /&gt;
// create a special file&lt;br /&gt;
mknod(&amp;quot;tmp/myfifo&amp;quot;, S_IFIFO | 0770, 0)     mkfifo -m 770 /tmp/myfifo&lt;br /&gt;
&lt;br /&gt;
// create a special file (device) (R!)&lt;br /&gt;
// major number = 1, minor number = 7&lt;br /&gt;
mknod(&amp;quot;/tmp/mydev&amp;quot;, S_IFCHR | 0660,        mknod -m 660 /tmp/mydev c 1 7&lt;br /&gt;
                makedev(1, 7));&lt;br /&gt;
&lt;br /&gt;
// change access/modification time&lt;br /&gt;
struct utimbuf ut = {time(NULL), time(NULL)};&lt;br /&gt;
utime(&amp;quot;/tmp/myfile&amp;quot;, &amp;amp;ut);&lt;br /&gt;
                                           touch /tm/myfile&lt;br /&gt;
&lt;br /&gt;
------------&lt;br /&gt;
// get the urrent working directory&lt;br /&gt;
// the glibc wrapper function returns&lt;br /&gt;
// a string&lt;br /&gt;
#include &amp;lt;linux/limits.h&amp;gt;                  readlink /tmp/symlink&lt;br /&gt;
...&lt;br /&gt;
char path[PATH_MAX];                       pwd&lt;br /&gt;
if (getcwd(path, PATH_MAX) == NULL)&lt;br /&gt;
        /* error management */ &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// read the value of a symbolic link &lt;br /&gt;
#include &amp;lt;linux/limits.h&amp;gt;                  readlink /tmp/symlink&lt;br /&gt;
...&lt;br /&gt;
char path[PATH_MAX];                      &lt;br /&gt;
ssize_t pathlen = &lt;br /&gt;
  readlink(&amp;quot;/tmp/symlink&amp;quot;, path, PATH_MAX);&lt;br /&gt;
if (pathlen == -1) /* error management */ ;&lt;br /&gt;
else&lt;br /&gt;
        path[pathlen] = 0;&lt;br /&gt;
&lt;br /&gt;
// test if a file exists, or is readable/writable/executable&lt;br /&gt;
// the return value of access is 0=true (success), -1=false (failure)&lt;br /&gt;
// the exit value of the test command is 0=true, 1=false&lt;br /&gt;
&lt;br /&gt;
access(&amp;quot;/tmp/file&amp;quot;, F_OK)   ↔  test -e /tmp/file&lt;br /&gt;
access(&amp;quot;/tmp/file&amp;quot;, R_OK)   ↔  test -r /tmp/file&lt;br /&gt;
access(&amp;quot;/tmp/file&amp;quot;, W_OK)   ↔  test -w /tmp/file&lt;br /&gt;
access(&amp;quot;/tmp/file&amp;quot;, X_OK)   ↔  test -x /tmp/file&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Renzo</name></author>
	</entry>
</feed>