您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ strerror_s函数代码示例

51自学网 2021-06-03 08:29:41
  C++
这篇教程C++ strerror_s函数代码示例写得很实用,希望能帮到您。

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

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

示例1: fatal_perror

void fatal_perror(const char *fmt, ...){    va_list args;    char *buf, buf2[4096];    int errno_save = errno;#ifdef _WIN32    char errbuf[256];#else    char *errbuf;#endif#ifdef _WIN32    strerror_s(errbuf, sizeof(errbuf), errno_save);#else    errbuf = strerror(errno_save);#endif    checkday();    buf = log_gettimestamp();    va_start(args, fmt);    ircvsnprintf(buf2, sizeof(buf2), fmt, args);    va_end(args);    if (!NoLogs && logfile)        fprintf(logfile, "%sFATAL: %s: %s/n", buf, buf2, errbuf);    if (stderr)        fprintf(stderr, "%sFATAL: %s: %s/n", buf, buf2, errbuf);    if (servsock >= 0)        denora_cmd_global(NULL, langstring(GLOBAL_FATAL_ERROR), buf2,                          errbuf);    exit(1);}
开发者ID:wodim,项目名称:irc-hispano,代码行数:35,


示例2: bson_strerror_r

char *bson_strerror_r (int err_code,  /* IN */                 char *buf,     /* IN */                 size_t buflen) /* IN */{   static const char *unknown_msg = "Unknown error";   char *ret = NULL;#if defined(_WIN32)   if (strerror_s (buf, buflen, err_code) != 0) {      ret = buf;   }#elif defined(__GNUC__) && defined(_GNU_SOURCE)   ret = strerror_r (err_code, buf, buflen);#else /* XSI strerror_r */   if (strerror_r (err_code, buf, buflen) == 0) {      ret = buf;   }#endif   if (!ret) {      bson_strncpy (buf, unknown_msg, buflen);      ret = buf;   }   return ret;}
开发者ID:acmorrow,项目名称:mongo-c-driver,代码行数:27,


示例3: _accept

      void _accept()      {         #if _WIN32            int client_length = sizeof(sockaddr_in);         #else            socklen_t client_length = sizeof(sockaddr_in);         #endif         _m_accepted_fd = ::accept(_m_socket_fd, (sockaddr *)&_m_client_address, &client_length);         // -1 on failure         if (_m_accepted_fd < 0)         {            std::string err = "Unable to connect to socket - error number: ";                        err += errno;                        err += " -- ";                        #if _WIN32               char buffer[256];               err += strerror_s(buffer, 256, errno);            #else               err += strerror(errno);            #endif                        throw std::runtime_error(err);         }      }
开发者ID:jashook,项目名称:bandwidth,代码行数:30,


示例4: compat53_strerror

static char* compat53_strerror (int en, char* buff, size_t sz) {#if COMPAT53_HAVE_STRERROR_R  /* use strerror_r here, because it's available on these specific platforms */#if COMPAT53_HAVE_STRERROR_R_XSI  /* XSI Compliant */  strerror_r(en, buff, sz);  return buff;#else  /* GNU-specific which returns const char* */  return strerror_r(en, buff, sz);#endif#elif COMPAT53_HAVE_STRERROR_S  /* for MSVC and other C11 implementations, use strerror_s   * since it's provided by default by the libraries   */  strerror_s(buff, sz, en);  return buff;#else  /* fallback, but   * strerror is not guaranteed to be threadsafe due to modifying   * errno itself and some impls not locking a static buffer for it   * ... but most known systems have threadsafe errno: this might only change   * if the locale is changed out from under someone while this function is being called   */  (void)buff;  (void)sz;  return strerror(en);#endif}
开发者ID:hishamhm,项目名称:dit,代码行数:29,


示例5: errno_string

 std::string errno_string(int err) {     char buffer[1024];     if (strerror_s(buffer, sizeof(buffer), err))         throw std::runtime_error("strerror_s failed");     return buffer; }
开发者ID:wnewbery,项目名称:cpphttp,代码行数:7,


示例6: thread_safe_strerror

        static std::string thread_safe_strerror(int errnum)        {#define ERRBUF_SIZE 512#ifdef HAVE_STRERROR_S            char buf[ERRBUF_SIZE] = { 0 };            strerror_s(buf, ERRBUF_SIZE, errnum);            return std::string(buf);#else#if (_POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600) && !_GNU_SOURCE            char buf[ERRBUF_SIZE] = { 0 };            strerror_r(errnum, buf, ERRBUF_SIZE);            return std::string(buf);#elif _GNU_SOURCE            /* GNU variant can return a pointer to static buffer instead of buf */            char buf[ERRBUF_SIZE] = { 0 };            return std::string(strerror_r(errnum, buf, ERRBUF_SIZE));#else            return std::string("An error occured with errnum ") +                    std::to_string(errnum) +                    ". Converting to the appropriate error message is disabled"                    "in this instance of the png++ library.";#endif#endif#undef ERRBUF_SIZE        }
开发者ID:repetier,项目名称:Slic3r,代码行数:27,


示例7: get_userdata

static const char *file_stdio_ferrmsg(ALLEGRO_FILE *f){   USERDATA *userdata = get_userdata(f);   if (userdata->errnum == 0)      return "";   /* Note: at this time MinGW has neither strerror_r nor strerror_s. */#if defined(ALLEGRO_HAVE_STRERROR_R)   {      int rc = strerror_r(userdata->errnum, userdata->errmsg,         sizeof(userdata->errmsg));      if (rc == 0) {         return userdata->errmsg;      }   }#endif#if defined(ALLEGRO_HAVE_STRERROR_S)   {      errno_t rc = strerror_s(userdata->errmsg, sizeof(userdata->errmsg),         userdata->errnum);      if (rc == 0) {         return userdata->errmsg;      }   }#endif   return "";}
开发者ID:BorisCarvajal,项目名称:allegro5,代码行数:30,


示例8: win_strerror

/** * @brief: A secure version of Windows strerror. * * @param[in] errnum Error number. * @param[in] strErrMsg User-supplied message. * * @returns a pointer to the error-message string. * @see strerror on MSDN. */char *win_strerror(int errnum){	static char buffer[MAXPATHLEN+1] = {'/0'};	strerror_s(buffer, sizeof(buffer)-1, errnum);	return buffer;}
开发者ID:A9-William,项目名称:pbspro,代码行数:16,


示例9: throw_serialcom_exception

/** For C-standard/POSIX/OS specific/Custom/JNI errors, this function is called. It sets a pointer which is checked* by java method when native function returns. If the pointer is set exception of class as set by this function is* thrown.** The type 1 indicates standard (C-standard/POSIX) error, 2 indicate custom (defined by this library)* error, 3 indicates custom error with message string, 4 indicates error number specific to Windows OS.*/void throw_serialcom_exception(JNIEnv *env, int type, int error_code, const char *msg) {	DWORD ret = -1;	errno_t err_code = 0;	char buffer[256];	jclass serialComExceptionClass = NULL;	(*env)->ExceptionClear(env);	serialComExceptionClass = (*env)->FindClass(env, SCOMEXPCLASS);	if ((serialComExceptionClass == NULL) || ((*env)->ExceptionOccurred(env) != NULL)) {		(*env)->ExceptionClear(env);		LOGE(E_FINDCLASSSCOMEXPSTR, FAILTHOWEXP);		return;	}	switch (type) {	case 4:		/* Caller has given Windows error code */		memset(buffer, '/0', sizeof(buffer));		ret = FormatMessageA(FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS,			NULL, error_code, MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US),			(LPSTR)&buffer, sizeof(buffer), NULL);		if (ret == 0) {			LOGEN(FAILTHOWEXP, "FormatMessageA()", GetLastError());		}		ret = (*env)->ThrowNew(env, serialComExceptionClass, buffer);		if (ret < 0) {			LOGE(FAILTHOWEXP, buffer);		}		break;	case 3:		/* Caller has given exception message explicitly */		ret = (*env)->ThrowNew(env, serialComExceptionClass, msg);		if (ret < 0) {			LOGE(FAILTHOWEXP, msg);		}		break;	case 2:		/* Caller has given custom error code, need to get exception message corresponding to this code. */		switch (error_code) {		default: _snprintf_s(buffer, 256, 256, "%s/0", E_UNKNOWN);		}		ret = (*env)->ThrowNew(env, serialComExceptionClass, buffer);		if (ret < 0) {			LOGE(FAILTHOWEXP, buffer);		}		break;	case 1:		/* Caller has given posix error code, get error message corresponding to this code. */		return;	case 5:		/* Caller has given <errno.h> error code for windows, get error message corresponding to this code. */		memset(buffer, '/0', sizeof(buffer));		err_code = strerror_s(buffer, sizeof(buffer), error_code);		if (err_code != 0) {			LOGEN(FAILTHOWEXP, "strerror_s()", err_code);		}	}}
开发者ID:Tecsisa,项目名称:serial-communication-manager,代码行数:67,


示例10: PrintLog

nfsstat3 CNFS3Prog::ProcedureWRITE(void){    char *path;    offset3 offset;    count3 count;    stable_how stable;    opaque data;    wcc_data file_wcc;    writeverf3 verf;    nfsstat3 stat;    FILE *pFile;    PrintLog("WRITE");    path = GetPath();    Read(&offset);    Read(&count);    Read(&stable);    Read(&data);    stat = CheckFile(path);    file_wcc.before.attributes_follow = GetFileAttributesForNFS(path, &file_wcc.before.attributes);    if (stat == NFS3_OK) {               pFile = _fsopen(path, "r+b", _SH_DENYWR);        if (pFile != NULL) {            _fseeki64(pFile, offset, SEEK_SET) ;            count = fwrite(data.contents, sizeof(char), data.length, pFile);            fclose(pFile);        } else {            char buffer[BUFFER_SIZE];            errno_t errorNumber = errno;            strerror_s(buffer, BUFFER_SIZE, errorNumber);            PrintLog(buffer);            if (errorNumber == 13) {                stat = NFS3ERR_ACCES;            } else {                stat = NFS3ERR_IO;            }        }        stable = FILE_SYNC;        verf = 0;    }    file_wcc.after.attributes_follow = GetFileAttributesForNFS(path, &file_wcc.after.attributes);    Write(&stat);    Write(&file_wcc);    if (stat == NFS3_OK) {        Write(&count);        Write(&stable);        Write(&verf);    }    return stat;}
开发者ID:philr,项目名称:winnfsd,代码行数:59,


示例11: err

char* err(){    static char buf[2048];    strerror_s(buf, errno);    // strerror(errno)    return buf;}
开发者ID:mildrock,项目名称:dummy,代码行数:8,


示例12: errno_str

std::string errno_str(){    char buffer[1024];    errno_t e = strerror_s(buffer, sizeof(buffer), errno);    if (e == 0) {	return buffer;    }    return "errno:" + std::to_string(errno);}
开发者ID:doj,项目名称:few,代码行数:9,


示例13: __strerror

char* __strerror(int errnum) {#ifdef _MSC_VER    char errBuf[512];    strerror_s(errBuf, errnum);    return errBuf;#else    return strerror(errnum);#endif};
开发者ID:bell345,项目名称:write-to-bmp,代码行数:9,


示例14: strerror_s

char *oscap_strerror_r(int errnum, char *buf, size_t buflen){#ifdef OS_WINDOWS	strerror_s(buf, buflen, errnum);	return buf;#else	return strerror_r(errnum, buf, buflen);#endif}
开发者ID:jan-cerny,项目名称:openscap,代码行数:9,


示例15: errnoWithDescription

std::string errnoWithDescription(int errNumber) {#if defined(_WIN32)    if (errNumber == -1)        errNumber = GetLastError();#else    if (errNumber < 0)        errNumber = errno;#endif    char buf[kBuflen];    char* msg{nullptr};#if defined(__GNUC__) && defined(_GNU_SOURCE) && !(__ANDROID_API__ <= 22) && !defined(EMSCRIPTEN)    msg = strerror_r(errNumber, buf, kBuflen);#elif defined(_WIN32)    LPWSTR errorText = nullptr;    FormatMessageW(FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_ALLOCATE_BUFFER |                       FORMAT_MESSAGE_IGNORE_INSERTS,                   nullptr,                   errNumber,                   0,                   reinterpret_cast<LPWSTR>(&errorText),  // output                   0,                                     // minimum size for output buffer                   nullptr);    if (errorText) {        ON_BLOCK_EXIT([&errorText] { LocalFree(errorText); });        std::string utf8ErrorText = toUtf8String(errorText);        auto size = utf8ErrorText.find_first_of("/r/n");        if (size == std::string::npos) {  // not found            size = utf8ErrorText.length();        }        if (size >= kBuflen) {            size = kBuflen - 1;        }        memcpy(buf, utf8ErrorText.c_str(), size);        buf[size] = '/0';        msg = buf;    } else if (strerror_s(buf, kBuflen, errNumber) != 0) {        msg = buf;    }#else /* XSI strerror_r */    if (strerror_r(errNumber, buf, kBuflen) == 0) {        msg = buf;    }#endif    if (!msg) {        return str::stream() << kUnknownMsg << errNumber;    }    return {msg};}
开发者ID:ShaneHarvey,项目名称:mongo,代码行数:56,


示例16: mvm_get_error

void mvm_get_error (char *message, size_t size, errno_t err) {#ifdef BUILD_WINDOWS    strerror_s(message, size, err);#else    cchar *src = strerror(err);    if (src) {        strncpy(message, src, size);    }#endif}
开发者ID:a-lemmon777,项目名称:minvm_test,代码行数:10,


示例17: strerror

/** * Returns a locale specific error text for the given error code (see 'errno'). This * method is thread-safe. */std::string strerror(int err){    char buff[2048];#ifdef _WIN32    strerror_s(buff, sizeof(buff), err);    return buff;#else    return strerror_r(err, buff, sizeof(buff));#endif}
开发者ID:PlayWithIt,项目名称:TFStubserver,代码行数:14,


示例18: ConvertErrorNoToString

/**	convert errno to string	@param err [in] errno	@note for both windows and linux*/inline std::string ConvertErrorNoToString(int err){    char errBuf[256];#ifdef _WIN32    strerror_s(errBuf, sizeof(errBuf), err);    return errBuf;#else    return ::strerror_r(err, errBuf, sizeof(errBuf));#endif}
开发者ID:Zintinio,项目名称:ldig,代码行数:15,


示例19: errstr

std::string errstr(int err) {#ifdef _MSC_VER	char buffer[1024];	strerror_s(buffer, sizeof(buffer), err);	return buffer;#else	// return strerror(err);	return "UNIMPLEMENTED";#endif}
开发者ID:phookit,项目名称:bundle,代码行数:10,


示例20: strerror_s

   void   File::ThrowRuntimeError_(const AnsiString &message)   {      char error_msg[255];      strerror_s(error_msg, 255, errno);      AnsiString complete_message = Formatter::FormatAsAnsi("{0} - Error: {1}", message, error_msg);      throw std::runtime_error(complete_message);   }
开发者ID:JesseChang,项目名称:hmailserver,代码行数:10,


示例21: posix_error_string

	std::string posix_error_string(int errcode)	{#ifdef _WIN32		char buff[255];		strerror_s(buff, 255, errcode);		return std::string(buff);#else		return std::string(strerror(errcode));#endif	}
开发者ID:darkstarx,项目名称:eos_test,代码行数:10,


示例22: ErrorString

std::string ErrorString(){  int err = errno;  char buf[256] = {0};  strerror_s(buf, err);  return buf;}
开发者ID:etnlGD,项目名称:renderdoc,代码行数:10,


示例23: get_error_string

  /**   * /brief Get an error string from an error code.   */  static std::string get_error_string(int err)  {    char buf[512];#if defined(__GNUC__)    strerror_r(err, buf, sizeof(buf));#elif defined(_MSC_VER)    strerror_s(buf, sizeof(buf), err);#endif    return std::string(buf);  }
开发者ID:1901,项目名称:libmoost,代码行数:13,


示例24: get_errno_str

std::string get_errno_str(int e){	char buf[64];	memset(buf, 0, 64);#ifdef WIN32	strerror_s(buf, 63, e);#else	strerror_r(e, buf, 63);#endif	return std::string(buf);}
开发者ID:Yale-LANS,项目名称:ALTO,代码行数:11,


示例25: _tmain

/** Prints packet timestaps regardless of format*/int _tmain(int argc, _TCHAR* argv[]){    char errbuf[PCAP_ERRBUF_SIZE];    wchar_t cmd[1024];    wchar_t tshark_path[MAX_PATH];    wchar_t file_path[MAX_PATH];    if ( argc != 3 ) {        wprintf(L"Prints packet timestaps regardless of format./n");        wprintf(L"Usage:/n/t%ls <tshark path> <trace file>/n", argv[0]);        return 1;    }    // conversion to short path name in case there are spaces    if ( ! GetShortPathNameW(argv[1], tshark_path, MAX_PATH) ||          ! GetShortPathNameW(argv[2], file_path, MAX_PATH) )    {        printf("Failed to convert paths to short form.");        return 1;    }    // create tshark command, which will make the trace conversion and print in libpcap format to stdout    if ( swprintf_s(cmd, 1024, L"%ls -r %ls -w - -F libpcap", tshark_path, file_path) < 0 ) {        wprintf(L"Failed to create command/n");        return 1;    }    // start tshark    FILE *tshark_out = _wpopen(cmd, L"rb");    if ( tshark_out == NULL ) {        strerror_s(errbuf, PCAP_ERRBUF_SIZE, errno);        printf("Failed run tshark: %s/n", errbuf);        wprintf(L"Command: %ls", cmd);        return 1;    }    // open stdout from tshark    pcap_t *pcap = pcap_fopen_offline(tshark_out, errbuf);    if ( pcap == NULL ) {        printf("Error opening stream from tshark: %s/n", errbuf);        return 1;    }    // print information about every packet int trace    struct pcap_pkthdr hdr;    while ( pcap_next(pcap, &hdr) ) {        printf("packet: ts: %u.%06u,  len: %4u,  caplen: %4u/n", hdr.ts.tv_sec, hdr.ts.tv_usec, hdr.len, hdr.caplen);    }    // clean up    pcap_close(pcap);    _pclose(tshark_out);    return 0;}
开发者ID:52M,项目名称:npcap,代码行数:55,


示例26: error2str

const char* error2str(errno_t err){	static char str[BUFFER_LENGTH] = "";	errno_t e = strerror_s( str, sizeof(str), err );	if ( e )	{		return NULL;	}	return str;}
开发者ID:RokkiGH,项目名称:wowboss,代码行数:11,


示例27: strerror_x

inlinevoid strerror_x(int errNo, std::string* result){#ifdef CFG_COMPILER_MSC_80_2005  // Eliminate warning C4996: 'strerror' was declared deprecated  result->assign(128, '/0');  if (strerror_s(&result->at(0), result->size() - 1, errNo) != 0)      result->assign("unknown error (cannot get error message)");#else  *result = strerror(errNo);#endif}
开发者ID:Dmitriy333,项目名称:OOP5,代码行数:12,


示例28: while

   std::shared_ptr<ByteBuffer>    File::ReadChunk(int iMaxSize)   {        std::shared_ptr<ByteBuffer> pFileContents = std::shared_ptr<ByteBuffer>(new ByteBuffer);      if (file_ == nullptr)         throw std::logic_error("Attempt to read from file which has not been opened.");               // Create a buffer to hold the file      pFileContents->Allocate(iMaxSize);      // fread fails reading large files. If the file is too large, fread will read zero bytes and the      // errno will be set to invalid argument. The below code therefore reads the file in chunks.      int remaining_bytes = iMaxSize;      BYTE *buffer_position = (BYTE*)pFileContents->GetBuffer();               int total_bytes_read = 0;      while (remaining_bytes > 0)      {         int bytes_to_read = min(FileChunkSize, remaining_bytes);         int bytes_actually_read = fread((void*)buffer_position, 1, bytes_to_read, file_);         total_bytes_read += bytes_actually_read;                         if (bytes_actually_read != bytes_to_read)         {            if (feof(file_))            {               // we've reached end of file.               break;            }                        char error_msg[255];            strerror_s(error_msg, 255, errno);            throw std::runtime_error(Formatter::FormatAsAnsi("Unable to read file {0}. Expected bytes: {1}, Actual read bytes: {2}. Error: {3}", name_, bytes_to_read, bytes_actually_read, error_msg));         }         buffer_position += bytes_actually_read;         remaining_bytes -= bytes_actually_read;                  }      pFileContents->DecreaseSize(iMaxSize - total_bytes_read);               if (pFileContents->GetSize() == 0)      {         std::shared_ptr<ByteBuffer> empty;         return empty;      }      return pFileContents;   }
开发者ID:JesseChang,项目名称:hmailserver,代码行数:53,


示例29: ut_strerror

voidut_strerror(int errnum, char *buff, size_t bufflen){	switch (errnum) {		case ENOTSUP:			strcpy_s(buff, bufflen, ENOTSUP_STR);			break;		default:			if (strerror_s(buff, bufflen, errnum))				strcpy_s(buff, bufflen, UNMAPPED_STR);	}}
开发者ID:stellarhopper,项目名称:nvml,代码行数:12,



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


C++ strf函数代码示例
C++ strerror_from_system函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。