LINUX04
可恶,为什么看不懂SCP命令要的参数是什么喵
时光机0720:scp username@网址:/dir/filename 本地目录 (caution:windows的黑窗口使用)
LINUX06
0708,LINUX目录相关操作 + LINUX全导图-CSDN博客好好好喵,抄过了还是不记得喵
t_getcwd.c 逮捕忘记free的自己喵
#include <func.h>
int main(int aegc,char* argv[])
{
char* cwd=getcwd(NULL,0);
if(!cwd){error(1,errno,"getcwd");}
puts(cwd);
free(cwd);//buffer,sizef(buffer),NULL-->自动malloc,bu free
return 0;
}
t_test01.c
#include <func.h>
/*struct dirent{
ino_t d_ino;
off_t d_off;
unsigned shott d_reclen;
unsigned char d_type;
char d_name[256];
};*/
int main(int argc,char* argv[])
{
DIR* pdir=opendir(".");
if(!pdir){error(1,errno,"opendir ..");}
long loc=telldir(pdir);
//idiom
struct dirent* pdirent;
errno=0;//readdir()会返回dirent* ,读到末尾和错误都return NULL,区别errno
while(1){
//事先记录目录流位置
long tmploc=telldir(pdir);
pdirent=readdir(pdir);
if(pdirent==NULL){break;}//eof error return
printf("%s",pdirent->d_name);
if(strcmp(pdirent->d_name,"t_getcwd.c")==0){
loc=tmploc;
}
}
printf("\n");
//error or end
/* if(errno){(1,errno,"readdir"); } */
if(errno!=0){
perror("readdir");
exit(1);
}
printf("--------\n");
seekdir(pdir,loc);
pdirent=readdir(pdir);
puts(pdirent->d_name);
printf("--------\n");
rewinddir(pdir);
pdirent=readdir(pdir);
puts(pdirent->d_name);
closedir(pdir);
return 0;
}
begin
.
t_dir_test.c
..
t_dir_test
t_gercwd
t_getcwd.c--------
t_getcwd.c
--------
.
.. . 是隐藏目录喵
LINUX17
001.c 001sever.c 可恶为什么连不上~好的连上了
#include <func.h>
int main()
{
//创建server的监听套接字
int listenfd=socket(AF_INET,SOCK_STREAM,0);
if(listenfd==-1){error(1,-1,"listen");}
struct sockaddr_in serveraddr;
memset(&serveraddr,0,sizeof(serveraddr));
serveraddr.sin_family=AF_INET;
serveraddr.sin_port=htons(8080);
serveraddr.sin_addr.s_addr=inet_addr("192.168.30.129");
//human can see
printf("%s:%d\n",inet_ntoa(serveraddr.sin_addr),
ntohs(serveraddr.sin_port));
//bind 绑定一个套接字和一个网络地址
//只有服务器需要调用猫,暴露自己的网络地址
//lient会被操作系统自动分配一个
int ret=bind(listenfd,(const struct sockaddr*)&serveraddr,
sizeof(serveraddr));
if(ret==-1){error(1,errno,"bind");}
//jianting client
ret=listen(listenfd,1);
while(1);
return 0;
}
#include <func.h>
int main()
{
//client
int clientfd=socket(AF_INET,SOCK_STREAM,0);
if(clientfd<0){error(1,0,"socket");}//miao1
//
struct sockaddr_in serveraddr;
memset(&serveraddr,0,sizeof(serveraddr));
serveraddr.sin_family=AF_INET;
serveraddr.sin_port=htons(8080);
serveraddr.sin_addr.s_addr=inet_addr("192.168.30.129");
//sin_addr 你也是个结构体miao
int ret =connect(clientfd,(struct sockaddr*)&serveraddr,
sizeof(serveraddr));
if(ret==-1){error(1,errno,"connect");}
printf("connect sucess\n");
//进行数据的接收和发送
while(1);
return 0;
}
127.0.0.1可以喵
192.168.235.128也可以喵 这个是我Linux的局域网地址
192.168.30.129环回地址喵,一般本地测试使用,自己发自己收喵
这狗比玩意根本记不住
socket() 创建一个套接字
bind() 将一个套接字和网络地址进行绑定,只有服务器需要使用,将网络地址暴露给客户端,客户端由操作系统随机分配
listen() 监听一个套接字
connect() 客户端发送建立连接的请求
reve() 从已连接的套接字中接受数据,通常和send()连用,用于客户端和服务器之间的数据交换