linux 错误码 linux命令

u- boot出现错误代码0x000007b

错误原因分析:

根源:uboot放在linux虚拟机与windows共享的文件下,由于在配置uboot文件的时候需要建立一些软连接,而在windows下不支持此操作。

解决方案:

1,将uboot复制一份到linux的非共享文件夹下,然后再执行配置操作,出现此提示表示配置成功:Configuring for x210_sd board…

好处:简单粗暴,快速解决问题。缺陷:如若想在windows下用source insight查看代码就没办法。(解决办法:可cp 2份uboot,一份在共享目录下,一份在非共享目录下)

2,在Linux中,建立Samba服务,然后新创建新samba用户和文件夹,然后在windows中就可以访问到该文件夹了。然后把在Linux中,从共享目录拷贝到你所要共享的samba目录中,这样,也可以实现所要的文件共享。好处:在windows与linux访问都ok,缺点:费时。

扩展资料:

u-boot系统启动流程,大多数bootloader都分为stage1和stage2两部分,u-boot也不例外。依赖于CPU体系结构的代码(如设备初始化代码等)通常都放在stage1且可以用汇编语言来实现,而stage2则通常用C语言来实现,这样可以实现复杂的功能,而且有更好的可读性和移植性。

U-Boot对PowerPC系列处理器支持最为丰富,对Linux的支持最完善。其它系列的处理器和操作系统基本是在2002年11月PPCBOOT改名为U-Boot后逐步扩充的。

从PPCBOOT向U-Boot的顺利过渡,很大程度上归功于U-Boot的维护人德国DENX软件工程中心Wolfgang Denk[以下简称W.D]本人精湛专业水平和持着不懈的努力。

linux笔记:strerror函数的使用以及errno错误码中文

在Linux系统中,使用`strerror`和`errno`函数处理错误情况时,`errno`是一个全局变量,用于存储系统调用或库调用时发生的错误代码。通过`strerror`函数,可以将`errno`中的错误码转换为相应的错误信息字符串。

在遇到系统API调用失败,如`open()`、`write()`、`create()`等函数返回-1的情况时,使用`errno`来确定失败原因变得尤为重要。例如,`ENXIO`表示设备或地址不存在,`EAGAIN`表示需要再次尝试操作。

下面是一些常用的错误码及其解释:

`EPERM`:操作不允许

`ENOENT`:文件或目录不存在

`ESRCH`:进程不存在

`EINTR`:系统调用被中断

`EIO`:I/O错误

`ENXIO`:设备或地址不存在

`E2BIG`:参数列表过长

`ENOEXEC`:执行格式错误

`EBADF`:错误文件编号

`ECHILD`:无子进程

`EAGAIN`:重试

`ENOMEM`:内存不足

`EACCES`:无权限

`EFAULT`:地址错误

`ENOTBLK`:需要块设备

`EBUSY`:设备或资源忙

`EEXIST`:文件已存在

`EXDEV`:跨设备链路

`ENODEV`:设备不存在

`ENOTDIR`:路径不存在

`EISDIR`:是路径

`EINVAL`:无效参数

`ENFILE`:文件表溢出

`EMFILE`:打开的文件过多

`ENOTTY`:非打字机

`ETXTBSY`:文本文件忙

`EFBIG`:文件太大

`ENOSPC`:设备无空间

`ESPIPE`:非法查询

`EROFS`:只读文件系统

`EMLINK`:链接太多

`EPIPE`:管道破裂

`EDOM`:参数超出函数域

`ERANGE`:结果无法表示

`EDEADLK`:资源将发生死锁

`ENAMETOOLONG`:文件名太长

`ENOLCK`:没有可用的记录锁

`ENOSYS`:函数未实现

`ENOTEMPTY`:目录非空

`ELOOP`:遇到太多符号链接

`EWOULDBLOCK`:操作会阻塞

`ENOMSG`:没有符合需求类型的消息

`EIDRM`:标识符已删除

`ECHRNG`:通道编号超出范围

`EL2NSYNC`:level2不同步

`EL3HLT`:3级停止

`EL3RST`:3级重置

`ELNRNG`:链接编号超出范围

`EUNATCH`:协议驱动程序没有连接

`ENOCSI`:没有可用的CSI结构

`EL2HLT`:2级停止

`EBADE`:无效交换

`EBADR`:无效请求描述

`EXFULL`:交换完全

`ENOANO`:无阳极

`EBADRQC`:无效请求码

`EBADSLT`:无效插槽

`EDEADLOCK`:资源死锁

`EBADMSG`:不是数据消息

`EOVERFLOW`:对指定的数据类型来说值太大

`ENOTUNIQ`:网络上名字不唯一

`EBADFD`:文件描述符状态错误

`EREMCHG`:远程地址改变

`ELIBACC`:无法访问共享库

`ELIBBAD`:访问损坏的共享库

`ELIBSCN`:库部分在a.out损坏

`ELIBMAX`:试图链接太多共享库

`ELIBEXEC`:无法直接运行共享库

`EILSEQ`:非法字节序列

`ERESTART`:应重新启动被中断的系统调用

`ESTRPIPE`:流管错误

`EUSERS`:用户太多

`ENOTSOCK`:在非套接字上进行套接字操作

`EDESTADDRREQ`:需要目的地址

`EMSGSIZE`:消息太长

`EPROTOTYPE`:错误协议类型

`ENOPROTOOPT`:协议不可用

`EPROTONOSUPPORT`:不支持协议

`ESOCKTNOSUPPORT`:不支持套接字类型

`EOPNOTSUPP`:操作上不支持传输端点

`EPFNOSUPPORT`:不支持协议族

`EAFNOSUPPORT`:协议不支持地址群

`EADDRINUSE`:地址已被使用

`EADDRNOTAVAIL`:无法分配请求的地址

`ENETDOWN`:网络已关闭

`ENETUNREACH`:网络不可达

`ENETRESET`:网络由于复位断开连接

`ECONNABORTED`:软件导致连接终止

`ECONNRESET`:连接被对方复位

`ENOBUFS`:没有可用的缓存空间

`EISCONN`:传输端点已连接

`ENOTCONN`:传输端点未连接

`ESHUTDOWN`:传输端点关闭后不能在发送

`ETIMEDOUT`:连接超时

`ECONNREFUSED`:连接被拒绝

`EHOSTDOWN`:主机已关闭

`EHOSTUNREACH`:无法路由到主机

`EALREADY`:操作已在进程中

`EINPROGRESS`:进程中正在进行的操作

`ESTALE`:远程NFS文件句柄已失效

`EUCLEAN`:结构需要清洁

`ENOTNAM`:不是XENIX命名类型文件

`ENAVAIL`:没有XENIX信号量可用

`EISNAM`:是命名类型文件

`EREMOTEIO`:远程I/O错误

`EDQUOT`:配额已满

`ENOMEDIUM`:没有介质找到

`EMEDIUMTYPE`:错误介质类型

通过理解和使用这些错误码,程序员能够更有效地处理和诊断Linux系统中出现的错误情况,从而提高程序的稳定性和健壮性。

Linux网络编程中socket常见错误码分析

Linux网络编程中,Socket错误码是开发过程中不可或缺的一部分,它们揭示了通信过程中可能遇到的异常情况。以下是一些常见错误码的解读:

EINTR(4):当一个阻塞操作被中断,如设置的发送或接收超时,可能会遇到这个错误。对于阻塞模式的socket,如在read或write操作时遇到-1并伴有errno为4,意味着系统调用被中断。遇到EINTR,应检查返回值,如果recv返回0,表示连接已断开,应停止接收操作。

ETIMEOUT(1103)和EAGAIN(4):这两个错误通常与超时相关,前者表示读写操作超时,后者表示资源暂时不可用,可以稍后重试。同时,EPIPE(5)表示试图写入一个已经关闭的socket,会导致此错误。

EBADF(22):当尝试读取或写入一个已经关闭的socket时,read或write函数会返回EBADF错误,意味着文件描述符无效。

ECONNREFUSED(111):当尝试连接到一个服务器时,如果服务器拒绝连接,就会收到这个错误,表明连接请求被拒绝。

ECONNRESET(104):表示远程主机已关闭连接,可能是由于网络中断或对方主动断开连接。处理这类错误时,应确保程序能够优雅地处理连接终止。

理解并妥善处理这些错误码是确保网络编程稳定性的关键,通过正确解析错误,开发者能快速定位问题并采取相应措施。

阅读剩余
THE END