当前位置: 首页>>代码示例>>C++>>正文


C++ smbc_open函数代码示例

本文整理汇总了C++中smbc_open函数的典型用法代码示例。如果您正苦于以下问题:C++ smbc_open函数的具体用法?C++ smbc_open怎么用?C++ smbc_open使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。


在下文中一共展示了smbc_open函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: main

int main(int argc, char** argv)
{
	int err = -1;
	int fd = 0;
	int msg_len = 0;
	char url[MAX_BUFF_SIZE];
	char* message;
	char* response;

	memset(g_workgroup, '\0', MAX_BUFF_SIZE);
	memset(url, '\0', MAX_BUFF_SIZE);

	if ( argc == 6 )
	{
		
		strncpy(g_workgroup,argv[1],strlen(argv[1]));
		strncpy(g_username,argv[2],strlen(argv[2]));
		strncpy(g_password,argv[3],strlen(argv[3]));
		strncpy(url,argv[4],strlen(argv[4]));

		msg_len = strlen(argv[5])+1;
		message = malloc(msg_len);
		response = malloc(msg_len);
		message[msg_len - 1] = 0;	
		strncpy(message,argv[5],msg_len);

		smbc_init(auth_fn, 0);
		smbc_unlink(url);
		fd = smbc_open(url,O_RDWR | O_CREAT, 0666);
		smbc_close(fd);

		strncpy(g_username,"xxxxxxxx",8);
		strncpy(g_password,"xxxxxxxx",8);

		fd = smbc_open(url, O_RDWR, 0666);

		if (fd < 0)
			 
			err = errno;
		 
		else { 

			smbc_write(fd, message, msg_len);
			err = errno;

			smbc_close(fd);

		}

		free(message);
		free(response);
		
	}

	return err;

}
开发者ID:sprymak,项目名称:samba,代码行数:57,代码来源:write_13.c

示例2: main

int main(int argc, char** argv)
{
	int err = -1;
	int fd = 0;
	int msg_len = 0;
	char url[MAX_BUFF_SIZE];
	char* message;
	char* response;

	bzero(g_workgroup,MAX_BUFF_SIZE);
	bzero(url,MAX_BUFF_SIZE);

	if ( argc == 6 )
	{
		
		strncpy(g_workgroup,argv[1],strlen(argv[1]));
		strncpy(g_username,argv[2],strlen(argv[2]));
		strncpy(g_password,argv[3],strlen(argv[3]));
		strncpy(url,argv[4],strlen(argv[4]));

		msg_len = strlen(argv[5])+1;
		message = malloc(msg_len);
		response = malloc(msg_len);
		message[msg_len - 1] = 0;	
		strncpy(message,argv[5],msg_len);

		smbc_init(auth_fn, 0);
		smbc_unlink(url);
		fd = smbc_open(url,O_RDWR | O_CREAT, 0666);

		smbc_write(fd, message, msg_len);
		smbc_close(fd);

		fd = smbc_open(url,O_WRONLY, 0666);
		err = smbc_read(fd,response,msg_len);

		free(message);
		free(response);

		if ( err < 0 )
			err = 1;

		else if ( err != msg_len )
			err = 1;

		else
			err = 0;

	}

	return err;

}
开发者ID:srimalik,项目名称:samba,代码行数:53,代码来源:read_3.c

示例3: smbcfs_open

static int smbcfs_open(const char* const path, struct fuse_file_info* const fi)
{

  const std::string smbcfs_path = smbcfs_root_path + path;

#ifdef MUTEX_LOCK
  pthread_mutex_lock(&mutex_lock);  
#endif

  const int ret_open = smbc_open(smbcfs_path.c_str(), fi->flags, 0);

#ifdef MUTEX_LOCK
  pthread_mutex_unlock(&mutex_lock);  
#endif

#ifdef SMBCFS_DEBUG
  fprintf(stderr, "[smbc_open] %s %p => %d\n",
	  smbcfs_path.c_str(), fi, ret_open);
#endif

  if(ret_open<0) { return ret_open; }

  fi->fh = ret_open;
  return 0;

}
开发者ID:aont,项目名称:smbcfs,代码行数:26,代码来源:main.cpp

示例4: main

int main(int argc, char* argv[])
{
        int             fd;
        struct stat     st1;
        struct stat     st2;
        char *          pUrl = argv[1];

        if(argc != 2)
        {
                printf("usage: %s <file_url>\n", argv[0]);
                return 1;
        }

        
        smbc_init(get_auth_data_fn, 0);
        
        if (smbc_stat(pUrl, &st1) < 0)
        {
                perror("smbc_stat");
                return 1;
        }
        
        if ((fd = smbc_open(pUrl, O_RDONLY, 0)) < 0)
        {
                perror("smbc_open");
                return 1;
        }

        if (smbc_fstat(fd, &st2) < 0)
        {
                perror("smbc_fstat");
                return 1;
        }
        
        smbc_close(fd);

#define COMPARE(name, field)                                            \
        if (st1.field != st2.field)                                     \
        {                                                               \
                printf("Field " name " MISMATCH: st1=%lu, st2=%lu\n",   \
                       (unsigned long) st1.field,                       \
                       (unsigned long) st2.field);                      \
        }

        COMPARE("st_dev", st_dev);
        COMPARE("st_ino", st_ino);
        COMPARE("st_mode", st_mode);
        COMPARE("st_nlink", st_nlink);
        COMPARE("st_uid", st_uid);
        COMPARE("st_gid", st_gid);
        COMPARE("st_rdev", st_rdev);
        COMPARE("st_size", st_size);
        COMPARE("st_blksize", st_blksize);
        COMPARE("st_blocks", st_blocks);
        COMPARE("st_atime", st_atime);
        COMPARE("st_mtime", st_mtime);
        COMPARE("st_ctime", st_ctime);

        return 0;
}
开发者ID:AIdrifter,项目名称:samba,代码行数:60,代码来源:teststat3.c

示例5: OpenForWrite

void* OpenForWrite(VFSURL* url, bool bOverWrite)
{ 
  CSMB2::Get().Init();
  // we can't open files like smb://file.f or smb://server/file.f
  // if a file matches the if below return false, it can't exist on a samba share.
  if (!IsValidFile(url->filename))
    return NULL;

  std::string strFileName = GetAuthenticatedPath(url);
  PLATFORM::CLockObject lock(CSMB2::Get());

  SMBContext* result = new SMBContext;
  if (bOverWrite)
  {
    XBMC->Log(ADDON::LOG_INFO, "FileSmb::OpenForWrite() called with overwriting enabled! - %s", strFileName.c_str());
    result->fd = smbc_creat(strFileName.c_str(), 0);
  }
  else
  {
    result->fd = smbc_open(strFileName.c_str(), O_RDWR, 0);
  }

  if (result->fd == -1)
  {
    // write error to logfile
    XBMC->Log(ADDON::LOG_ERROR, "FileSmb->Open: Unable to open file : '%s'\nunix_err:'%x' error : '%s'", strFileName.c_str(), errno, strerror(errno));
    delete result;
    return NULL;
  }

  // We've successfully opened the file!
  return result;
}
开发者ID:hudokkow,项目名称:vfs.smb,代码行数:33,代码来源:SMBFile.cpp

示例6: open_f

static int open_f (stream_t *stream, int mode, void *opts, int* file_format) {
  struct stream_priv_s *p = (struct stream_priv_s*)opts;
  char *filename;
  mode_t m = 0;
  off_t len;
  int fd, err;

  filename = stream->url;

  if(mode == STREAM_READ)
    m = O_RDONLY;
  else if (mode == STREAM_WRITE) //who's gonna do that ?
    m = O_RDWR|O_CREAT|O_TRUNC;
  else {
    mp_msg(MSGT_OPEN, MSGL_ERR, "[smb] Unknown open mode %d\n", mode);
    m_struct_free (&stream_opts, opts);
    return STREAM_UNSUPPORTED;
  }

  if(!filename) {
    mp_msg(MSGT_OPEN,MSGL_ERR, "[smb] Bad url\n");
    m_struct_free(&stream_opts, opts);
    return STREAM_ERROR;
  }

  err = smbc_init(smb_auth_fn, 1);
  if (err < 0) {
    mp_msg(MSGT_OPEN,MSGL_ERR,MSGTR_SMBInitError,err);
    m_struct_free(&stream_opts, opts);
    return STREAM_ERROR;
  }

  fd = smbc_open(filename, m,0644);
  if (fd < 0) {
    mp_msg(MSGT_OPEN,MSGL_ERR,MSGTR_SMBFileNotFound, filename);
    m_struct_free(&stream_opts, opts);
    return STREAM_ERROR;
  }

  stream->flags = mode;
  len = 0;
  if(mode == STREAM_READ) {
    len = smbc_lseek(fd,0,SEEK_END);
    smbc_lseek (fd, 0, SEEK_SET);
  }
  if(len > 0 || mode == STREAM_WRITE) {
    stream->flags |= MP_STREAM_SEEK;
    stream->seek = seek;
    if(mode == STREAM_READ) stream->end_pos = len;
  }
  stream->type = STREAMTYPE_SMB;
  stream->fd = fd;
  stream->fill_buffer = fill_buffer;
  stream->write_buffer = write_buffer;
  stream->close = close_f;
  stream->control = control;

  m_struct_free(&stream_opts, opts);
  return STREAM_OK;
}
开发者ID:NeeMeese,项目名称:mplayer-ce,代码行数:60,代码来源:stream_smb.c

示例7: main

int main(int argc, char** argv)
{
	int err = -1;
	int fd1 = 0;
	char url[MAX_BUFF_SIZE];

	memset(g_workgroup, '\0', MAX_BUFF_SIZE);
	memset(url, '\0', MAX_BUFF_SIZE);

	if ( argc == 5 )
	{
		strncpy( g_workgroup, argv[1], strlen(argv[1]) );
		strncpy( g_username, argv[2], strlen(argv[2]) );
		strncpy( g_password, argv[3], strlen(argv[3]) );
		strncpy( url, argv[4], strlen(argv[4]) );

		smbc_init( auth_fn, 0 );
		fd1 = smbc_open( url, O_RDWR | O_CREAT, 0666 );
		smbc_close( fd1 );

		err = smbc_rmdir( url );

		if ( err < 0 )
			err = 1;

		else
			err = 0;	


	}

	return err;

}
开发者ID:sprymak,项目名称:samba,代码行数:34,代码来源:rmdir_5.c

示例8: main

int main(int argc, char** argv)
{
	int err = -1;
	char url[MAX_BUFF_SIZE];

	bzero(g_workgroup,MAX_BUFF_SIZE);
	bzero(url,MAX_BUFF_SIZE);

	if ( argc == 6 )
	{
		strncpy(g_workgroup,argv[1],strlen(argv[1]));
		strncpy(g_username,argv[2],strlen(argv[2]));
		strncpy(g_password,argv[3],strlen(argv[3]));
		strncpy(url,argv[4],strlen(argv[4]));

		smbc_init(auth_fn, 0);
		smbc_open(url,O_RDWR | O_CREAT,0666);
		err = smbc_rename( url, argv[5] );
	
		if ( err < 0 )
			err = 1;

	}

	return err;

}
开发者ID:0x24bin,项目名称:winexe-1,代码行数:27,代码来源:rename_3.c

示例9: get_smb_server_fd

int get_smb_server_fd(struct SMB_DS *ds, char* filename)
{
	int ret, fd, i;
	char buf[256+1];
	ret = smbc_init(smb_auth_fn, 0);NE_ERR(ret, 0);
	for(i=0;i<strlen(ds->path);i++)
	{
		if(ds->path[i]=='\\')
			ds->path[i] = '/';
	}
	sprintf(buf, "smb://%s/%s/%s", ds->server, ds->path, filename);
	buf[256]='\0';
	//fprintf(stderr, "%s\n", buf);
	if(ds->user[0]!='\0')
		strcpy(smb_username, ds->user);
	else
		strcpy(smb_username, "dummy");
	strcpy(smb_password, ds->passwd);
	
	//fprintf(stderr, "%s %s\n", smb_username, smb_password);

	fd = smbc_open(buf, O_RDWR | O_CREAT | O_TRUNC, 0666);EQ_ERR(fd, -1);
	return fd;
errout:
        if(fd != -1)
		smbc_close(fd);
	return -1;
}
开发者ID:niubl,项目名称:camera_project,代码行数:28,代码来源:smbc_put.c

示例10: open

/***************************************************** 
a wrapper for open()
*******************************************************/
int smbw_open(const char *fname, int flags, mode_t mode)
{
        int client_fd;
        int smbw_fd;
	char path[PATH_MAX];

	SMBW_INIT();

	if (!fname) {
		errno = EINVAL;
		return -1;
	}

	smbw_fd = (smbw_libc.open)(SMBW_DUMMY, O_WRONLY, 0200);
	if (smbw_fd == -1) {
		errno = EMFILE;
                return -1;
	}

        smbw_fix_path(fname, path);
        if (flags == creat_bits) {
                client_fd =  smbc_creat(path, mode);
        } else {
                client_fd = smbc_open(path, flags, mode);
        }

        if (client_fd < 0) {
                (* smbw_libc.close)(smbw_fd);
                return -1;
        }

        smbw_fd_map[smbw_fd] = client_fd;
        smbw_ref(client_fd, SMBW_RCT_Increment);
        return smbw_fd;
}
开发者ID:AllardJ,项目名称:Tomato,代码行数:38,代码来源:smbw.c

示例11: FREPARE_SMB_OPER

int FSSmb::OpenRead( FSPath& path, int flags, int* err, FSCInfo* info )
{
	FREPARE_SMB_OPER( lock, info, &_param );

	int n = smbc_open( pathBuffer1.SetPath( path ), O_RDONLY | OPENFLAG_LARGEFILE, 0 );
	SetError( err, errno );
	return n < 0 ? -1 : n;
}
开发者ID:Serguei666,项目名称:WalCommander,代码行数:8,代码来源:vfs-smb.cpp

示例12: open_f

static int open_f (stream_t *stream, int mode)
{
  char *filename;
  mode_t m = 0;
  int64_t len;
  int fd, err;

  struct priv *priv = talloc_zero(stream, struct priv);
  stream->priv = priv;

  filename = stream->url;

  if(mode == STREAM_READ)
    m = O_RDONLY;
  else if (mode == STREAM_WRITE) //who's gonna do that ?
    m = O_RDWR|O_CREAT|O_TRUNC;
  else {
    MP_ERR(stream, "[smb] Unknown open mode %d\n", mode);
    return STREAM_UNSUPPORTED;
  }

  if(!filename) {
    MP_ERR(stream, "[smb] Bad url\n");
    return STREAM_ERROR;
  }

  err = smbc_init(smb_auth_fn, 1);
  if (err < 0) {
    MP_ERR(stream, "Cannot init the libsmbclient library: %d\n",err);
    return STREAM_ERROR;
  }

  fd = smbc_open(filename, m,0644);
  if (fd < 0) {
    MP_ERR(stream, "Could not open from LAN: '%s'\n", filename);
    return STREAM_ERROR;
  }

  stream->flags = mode;
  len = 0;
  if(mode == STREAM_READ) {
    len = smbc_lseek(fd,0,SEEK_END);
    smbc_lseek (fd, 0, SEEK_SET);
  }
  if(len > 0 || mode == STREAM_WRITE) {
    stream->flags |= MP_STREAM_SEEK;
    stream->seek = seek;
    if(mode == STREAM_READ) stream->end_pos = len;
  }
  priv->fd = fd;
  stream->fill_buffer = fill_buffer;
  stream->write_buffer = write_buffer;
  stream->close = close_f;
  stream->control = control;

  return STREAM_OK;
}
开发者ID:hroncok,项目名称:mpv,代码行数:57,代码来源:stream_smb.c

示例13: smbc_wrapper_open

int smbc_wrapper_open(connection* con, const char *furl, int flags, mode_t mode)
{
	if(con->mode== SMB_BASIC)
		return smbc_open(furl, flags, mode);
	else if(con->mode == SMB_NTLM)
		return smbc_cli_open(con->smb_info->cli, furl, flags);

	return -1;
}
开发者ID:heartshare,项目名称:asuswrt-merlin,代码行数:9,代码来源:smb_auth.c

示例14: main

int main(int argc, char** argv)
{
	int err = -1;
	int fd = 0;
	int msg_len = 0;
	char url[MAX_BUFF_SIZE];
	char* message;

	bzero(g_workgroup,MAX_BUFF_SIZE);
	bzero(url,MAX_BUFF_SIZE);
	bzero(g_print_user,MAX_BUFF_SIZE);
	bzero(g_print_name,MAX_BUFF_SIZE);

	g_print_id = 0;
	g_print_priority = 0;
	g_print_size = 0;

	if ( argc == 7 )
	{
		
		strncpy(g_workgroup,argv[1],strlen(argv[1]));
		strncpy(g_username,argv[2],strlen(argv[2]));
		strncpy(g_password,argv[3],strlen(argv[3]));
		strncpy(url,argv[4],strlen(argv[4]));

		msg_len = strlen(argv[5])+1;
		message = malloc(msg_len);
		message[msg_len - 1] = 0;	
		strncpy(message,argv[5],msg_len);
		/* printf("Message: %s\n",message); */
		/* printf("Message len: %i\n",msg_len); */

		smbc_init(auth_fn, 0);
		smbc_unlink(url);
		fd = smbc_open(url,O_RDWR | O_CREAT, 0666);
		smbc_write(fd, message, msg_len);
		smbc_close(fd);

		free(message);
		smbc_print_file(url,argv[6]);
		smbc_list_print_jobs(argv[6],print_list_fn);

		g_print_id = -1;
		err = smbc_unlink_print_job(argv[6],g_print_id);

		if ( err < 0 )

			err = 1;

		else
			err = 0;

	}

	return err;

}
开发者ID:0x24bin,项目名称:winexe-1,代码行数:57,代码来源:unlink_print_job_1.c

示例15: SMB_upload

/* upload file */
int SMB_upload(char *localpath, int index)
{
        if(access(localpath, F_OK) != 0)
        {
                printf("Local has no %s\n", localpath);
                return LOCAL_FILE_LOST;
        }

        write_log(S_UPLOAD, "", localpath, index);

        SMB_init(index);

        int buflen;
        char buffer[4096] = {0};

        char *serverpath = localpath_to_serverpath(localpath, index);
        int smb_fd = smbc_open(serverpath, O_RDWR|O_CREAT, FILE_MODE);
        int cli_fd;
        if((cli_fd = open(localpath, O_RDONLY, FILE_MODE)) > 0)
        {//以只读的方式打开,文件
            DEBUG("open localpath sucess\n");
                unsigned long long cli_filesize = 0;
                unsigned long long smb_filesize = 0;
                cli_filesize = lseek(cli_fd, 0L, SEEK_END);
                lseek(cli_fd, 0L, SEEK_SET);//read or write 文件的偏移量
                //2014.11.19 by sherry 判断上传是否成功

                //buflen = read(cli_fd, buffer, sizeof(buffer));
                //DEBUG("buflen=%d\n",buflen);
                //while(buflen > 0 && exit_loop == 0)
                while((buflen = read(cli_fd, buffer, sizeof(buffer))) > 0 && exit_loop == 0)
                {
                        smb_filesize += buflen;
                        //2014.11.19 by sherry 判断上传是否成功
                        //smbc_write(smb_fd, buffer, buflen);//smb_fd为server端的文件
                        int res=0;
                        res=smbc_write(smb_fd, buffer, buflen);
                        if(res==-1)
                            return -1;

                        printf("\rUpload [%s] percent - %f ", localpath, (float)smb_filesize/(float)cli_filesize);
                }
                if(smb_filesize != cli_filesize && exit_loop != 0)
                {
                        DEBUG("smb_filesize != cli_filesize && exit_loop != 0");
                        FILE *f_stream = fopen(g_pSyncList[index]->up_item_file, "w");
                        fprintf(f_stream, "%s", localpath);
                        fclose(f_stream);
                }
                smbc_close(smb_fd);
                close(cli_fd);
                DEBUG("upload --end\n");
        }
        free(serverpath);
        return 0;
}
开发者ID:rjknight123,项目名称:asuswrt-merlin,代码行数:57,代码来源:smb_api.c


注:本文中的smbc_open函数示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。