⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 libsmbclient.h

📁 samba-3.0.22.tar.gz 编译smb服务器的源码
💻 H
📖 第 1 页 / 共 5 页
字号:
 * @return          Valid file handle, < 0 on error with errno set: *                  - ENOMEM  Out of memory *                  - EINVAL if an invalid parameter passed, like no  *                  file, or smbc_init not called. *                  - EEXIST  pathname already exists and O_CREAT and  *                  O_EXCL were used. *                  - EISDIR  pathname  refers  to  a  directory  and   *                  the access requested involved writing. *                  - EACCES  The requested access to the file is not  *                  allowed  *                  - ENODEV The requested share does not exist *                  - ENOTDIR A file on the path is not a directory *                  - ENOENT  A directory component in pathname does  *                  not exist. * * @see             smbc_creat() * * @note            This call uses an underlying routine that may create *                  a new connection to the server specified in the URL. *                  If the credentials supplied in the URL, or via the *                  auth_fn in the smbc_init call, fail, this call will *                  try again with an empty username and password. This  *                  often gets mapped to the guest account on some machines. */int smbc_open(const char *furl, int flags, mode_t mode);/**@ingroup file * Create a file on an SMB server. * * Same as calling smbc_open() with flags = O_CREAT|O_WRONLY|O_TRUNC  *    * @param furl      The smb url of the file to be created *   * @param mode      mode specifies the permissions to use if  a  new   *                  file is created.  It  is  modified  by  the  *                  process's umask in the usual way: the permissions *                  of the created file are (mode & ~umask) * *                  NOTE, the above is not true. We are dealing with  *                  an SMB server, which has no concept of a umask! *       * @return          Valid file handle, < 0 on error with errno set: *                  - ENOMEM  Out of memory *                  - EINVAL if an invalid parameter passed, like no  *                  file, or smbc_init not called. *                  - EEXIST  pathname already exists and O_CREAT and *                  O_EXCL were used. *                  - EISDIR  pathname  refers  to  a  directory  and *                  the access requested involved writing. *                  - EACCES  The requested access to the file is not *                  allowed  *                  - ENOENT  A directory component in pathname does  *                  not exist. *                  - ENODEV The requested share does not exist. * @see             smbc_open() * */int smbc_creat(const char *furl, mode_t mode);/**@ingroup file * Read from a file using an opened file handle. * * @param fd        Open file handle from smbc_open() or smbc_creat() * * @param buf       Pointer to buffer to recieve read data * * @param bufsize   Size of buf in bytes * * @return          Number of bytes read, < 0 on error with errno set: *                  - EISDIR fd refers to a directory *                  - EBADF  fd  is  not  a valid file descriptor or  *                  is not open for reading. *                  - EINVAL fd is attached to an object which is  *                  unsuitable for reading, or no buffer passed or *		    smbc_init not called. * * @see             smbc_open(), smbc_write() * */ssize_t smbc_read(int fd, void *buf, size_t bufsize);/**@ingroup file * Write to a file using an opened file handle. * * @param fd        Open file handle from smbc_open() or smbc_creat() * * @param buf       Pointer to buffer to recieve read data * * @param bufsize   Size of buf in bytes * * @return          Number of bytes written, < 0 on error with errno set: *                  - EISDIR fd refers to a directory. *                  - EBADF  fd  is  not  a valid file descriptor or  *                  is not open for reading. *                  - EINVAL fd is attached to an object which is  *                  unsuitable for reading, or no buffer passed or *		    smbc_init not called. * * @see             smbc_open(), smbc_read() * */ssize_t smbc_write(int fd, void *buf, size_t bufsize);/**@ingroup file * Seek to a specific location in a file. * * @param fd        Open file handle from smbc_open() or smbc_creat() *  * @param offset    Offset in bytes from whence *  * @param whence    A location in the file: *                  - SEEK_SET The offset is set to offset bytes from *                  the beginning of the file *                  - SEEK_CUR The offset is set to current location  *                  plus offset bytes. *                  - SEEK_END The offset is set to the size of the  *                  file plus offset bytes. * * @return          Upon successful completion, lseek returns the  *                  resulting offset location as measured in bytes  *                  from the beginning  of the file. Otherwise, a value *                  of (off_t)-1 is returned and errno is set to  *                  indicate the error: *                  - EBADF  Fildes is not an open file descriptor. *                  - EINVAL Whence is not a proper value or smbc_init *		      not called. * * @todo Are all the whence values really supported? *  * @todo Are errno values complete and correct? */off_t smbc_lseek(int fd, off_t offset, int whence);/**@ingroup file * Close an open file handle. * * @param fd        The file handle to close * * @return          0 on success, < 0 on error with errno set: *                  - EBADF  fd isn't a valid open file descriptor *                  - EINVAL smbc_init() failed or has not been called * * @see             smbc_open(), smbc_creat() */int smbc_close(int fd);/**@ingroup directory * Unlink (delete) a file or directory. * * @param furl      The smb url of the file to delete * * @return          0 on success, < 0 on error with errno set: *                  - EACCES or EPERM Write  access  to the directory  *                  containing pathname is not allowed or one   *                  of  the  directories in pathname did not allow *                  search (execute) permission *                  - ENOENT A directory component in pathname does *                  not exist *                  - EINVAL NULL was passed in the file param or *		      smbc_init not called. *                  - EACCES You do not have access to the file *                  - ENOMEM Insufficient kernel memory was available * * @see             smbc_rmdir()s * * @todo Are errno values complete and correct? */int smbc_unlink(const char *furl);/**@ingroup directory * Rename or move a file or directory. *  * @param ourl      The original smb url (source url) of file or  *                  directory to be moved *  * @param nurl      The new smb url (destination url) of the file *                  or directory after the move.  Currently nurl must *                  be on the same share as ourl. * * @return          0 on success, < 0 on error with errno set: *                  - EISDIR nurl is an existing directory, but ourl is *                  not a directory. *                  - EEXIST nurl is  a  non-empty directory,  *                  i.e., contains entries other than "." and ".." *                  - EINVAL The  new  url  contained  a path prefix  *                  of the old, or, more generally, an  attempt was *                  made  to make a directory a subdirectory of itself *		    or smbc_init not called. *                  - ENOTDIR A component used as a directory in ourl  *                  or nurl path is not, in fact, a directory.  Or,  *                  ourl  is a directory, and newpath exists but is not *                  a directory. *                  - EACCES or EPERM Write access to the directory  *                  containing ourl or nurl is not allowed for the  *                  process's effective uid,  or  one of the  *                  directories in ourl or nurl did not allow search *                  (execute) permission,  or ourl  was  a  directory *                  and did not allow write permission. *                  - ENOENT A  directory component in ourl or nurl  *                  does not exist. *                  - EXDEV Rename across shares not supported. *                  - ENOMEM Insufficient kernel memory was available. *                  - EEXIST The target file, nurl, already exists. * * * @todo Are we going to support copying when urls are not on the same *       share?  I say no... NOTE. I agree for the moment. * */int smbc_rename(const char *ourl, const char *nurl);/**@ingroup directory * Open a directory used to obtain directory entries. * * @param durl      The smb url of the directory to open * * @return          Valid directory handle. < 0 on error with errno set: *                  - EACCES Permission denied. *                  - EINVAL A NULL file/URL was passed, or the URL would *                  not parse, or was of incorrect form or smbc_init not *                  called. *                  - ENOENT durl does not exist, or name is an  *                  - ENOMEM Insufficient memory to complete the  *                  operation.                               *                  - ENOTDIR name is not a directory. *                  - EPERM the workgroup could not be found. *                  - ENODEV the workgroup or server could not be found. * * @see             smbc_getdents(), smbc_readdir(), smbc_closedir() * */int smbc_opendir(const char *durl);/**@ingroup directory * Close a directory handle opened by smbc_opendir(). * * @param dh        Directory handle to close * * @return          0 on success, < 0 on error with errno set: *                  - EBADF dh is an invalid directory handle * * @see             smbc_opendir() */int smbc_closedir(int dh);/**@ingroup directory * Get multiple directory entries. * * smbc_getdents() reads as many dirent structures from the an open  * directory handle into a specified memory area as will fit. * * @param dh        Valid directory as returned by smbc_opendir() * * @param dirp      pointer to buffer that will receive the directory *                  entries. *  * @param count     The size of the dirp buffer in bytes * * @returns         If any dirents returned, return will indicate the *                  total size. If there were no more dirents available, *                  0 is returned. < 0 indicates an error. *                  - EBADF  Invalid directory handle *                  - EINVAL Result buffer is too small or smbc_init *		    not called. *                  - ENOENT No such directory. * @see             , smbc_dirent, smbc_readdir(), smbc_open() * * @todo Are errno values complete and correct? * * @todo Add example code so people know how to parse buffers. */int smbc_getdents(unsigned int dh, struct smbc_dirent *dirp, int count);/**@ingroup directory * Get a single directory entry. * * @param dh        Valid directory as returned by smbc_opendir() * * @return          A pointer to a smbc_dirent structure, or NULL if an *                  error occurs or end-of-directory is reached: *                  - EBADF Invalid directory handle *                  - EINVAL smbc_init() failed or has not been called * * @see             smbc_dirent, smbc_getdents(), smbc_open() */struct smbc_dirent* smbc_readdir(unsigned int dh);/**@ingroup directory * Get the current directory offset. * * smbc_telldir() may be used in conjunction with smbc_readdir() and * smbc_lseekdir(). * * @param dh        Valid directory as returned by smbc_opendir() * * @return          The current location in the directory stream or -1 *                  if an error occur.  The current location is not *                  an offset. Becuase of the implementation, it is a  *                  handle that allows the library to find the entry *                  later. *                  - EBADF dh is not a valid directory handle *                  - EINVAL smbc_init() failed or has not been called *                  - ENOTDIR if dh is not a directory * * @see             smbc_readdir() * */off_t smbc_telldir(int dh);/**@ingroup directory * lseek on directories. * * smbc_lseekdir() may be used in conjunction with smbc_readdir() and * smbc_telldir(). (rewind by smbc_lseekdir(fd, NULL)) * * @param fd        Valid directory as returned by smbc_opendir() *  * @param offset    The offset (as returned by smbc_telldir). Can be *                  NULL, in which case we will rewind * * @return          0 on success, -1 on failure *                  - EBADF dh is not a valid directory handle *                  - ENOTDIR if dh is not a directory

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -