Exemplo n.º 1
0
int dfs_fuse_write(const char *path, const char *buf, size_t size,
			off_t offset, struct fuse_file_info *fi) {
	struct file_desc *fd = fd_from_path(path + 1);
	fd->pos = offset;
	size_t len = fd->len;
	if (offset < len) {
		if (offset + size > len)
			size -= len - offset;
		dfs_write(fd, (void *)buf, size);
	} else
		size = 0;
	return size;
}
Exemplo n.º 2
0
Arquivo: cp.c Projeto: elopez/SO-I
int main(int argc, char **argv)
{
	if (argc < 3)
		return -1;
	if (dfs_connect("127.0.0.1") == -1)	// Conectarse al servidor
		return -1;
	FD src = dfs_open(argv[1]);	// Abrir el archivo origen
	dfs_rm(argv[2]);	// Borro el archivo por si existiera
	dfs_create(argv[2]);
	FD dst = dfs_open(argv[2]);	// Abrir destino
	char c;
	// Copiar el contenido
	while (dfs_read(src, 1, &c) != EOF) {
		dfs_write(dst, 1, &c);
	}
	// Cerrar archivos
	dfs_close(dst);
	dfs_close(src);
	// Cerrar conexion
	dfs_disconnect();
	return 0;
}