用C语言编写程序完成以下的Unix/Linux系统的系统调用
编制程序如下:头函数包括如下几个:#include<sys/types.h>#include<sys/stat.h>#include<fcntl.h>#include<u...
编制程序如下:头函数包括如下几个:
#include<sys/types.h>
#include<sys/stat.h>
#include<fcntl.h>
#include<unistd.h>
#include<stdio.h>
#include<stdlib.h>
打开目录下myshell文件
读出myshell文件的前3行
在myshell文件的当前位置写入字符串hello
将myshell文件读写指针定位到刚写入的hello串首
从myshell文件读出hello及其后的4个字节并打印出读出的结果
关闭myshell文件
将myshell文件重命名为shellmy 展开
#include<sys/types.h>
#include<sys/stat.h>
#include<fcntl.h>
#include<unistd.h>
#include<stdio.h>
#include<stdlib.h>
打开目录下myshell文件
读出myshell文件的前3行
在myshell文件的当前位置写入字符串hello
将myshell文件读写指针定位到刚写入的hello串首
从myshell文件读出hello及其后的4个字节并打印出读出的结果
关闭myshell文件
将myshell文件重命名为shellmy 展开
1个回答
展开全部
//这个是我学Unix C++时对知识点总结程序,应该对你有些用吧。
/*
istream ostream
| \ / |
ifstream iostream ofstream
|
fstream
*/
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
char ch[6];
cout << "Input a line: ";
ch[5] = cin.peek();
cout << "Peek first char: " << ch[5] << endl;
cin.get(ch[4]);
cout << "Read first char: " << ch[4] << endl;
cin.putback(ch[4]);
cin.getline(ch, 5);
if(!cin)
{
cout << "Input error!!!" << endl;
cin.clear();
cin.ignore(100, '\n');
}
else
cout << ch << endl;
cout << left << hex << showbase << uppercase << 1234 << endl;
cout << scientific << uppercase << left << 0.00123456 << endl;
cout.fill('*');
cout.width(8);
cout.unsetf(ios::dec | ios::oct);
cout.setf(ios::hex | ios::showbase | ios::uppercase | ios::left);
cout << 1234 << endl;
cout.setf(ios::dec);
ofstream fout("data.txt"); //使用fstream fio("data.txt", ios::in | ios::out);既可读又可写。
if(!fout.fail())
{
fout << "3.14159\t64I love C++" << endl;
fout.put('M');
fout.put('\n');
double d = 0.0123456789;
fout.precision(4);
fout.setf(ios::fixed);
// fout.setf(ios::scientific | ios::uppercase);
fout << d << endl;
fout.seekp(3, ios::cur); //读使用seekg(),与seekp()类似。
fout << '*' << flush;
fout.seekp(3, ios::cur);
fout << endl;
fout.seekp(2, ios::cur);
fout << '@' << ' ' << '*' << ' ' << '@' << endl;
fout.seekp(2, ios::cur);
streampos j = fout.tellp();
while((fout.tellp()-j) < 5)
fout << '*' << flush;
cout << "文件写入成功!" << endl;
}
else
cout << "文件打开失败!" << endl;
fout.close();
ifstream fin;
fin.open("data.txt", ios::in); //类似可以如fout那样定义
if(!fin.fail())
{
double d;
char ch[20] = {0};
string str;
fin >> d;
cout << d << endl;
fin.get(ch[0]);
for(int i=0; i<2; i++)
{
fin.get(ch[i]);
}
cout << ch << endl;
while(!fin.eof())
{
fin.getline(ch, 20, '\n');
cout << ch << endl;
}
}
else
cout << "文件打开失败!" << endl;
fin.close();
ofstream fo;
fo.open("bin.bin", ios::binary|ios::app);
if(!fo.fail())
{
int a[10];
for(int i=0; i<10; i++)
a[i] = i;
fo.write((char *)a, sizeof(a));
}
else
cout << "文件打开失败!" << endl;
fo.close();
ifstream fi;
fi.open("bin.bin", ios::binary|ios::in);
if(!fi.fail())
{
int a[10];
fi.read((char *)a, sizeof(a));
fi.close();
for(int i=0; i<10; i++)
cout << a[i];
cout << endl;
}
else
cout << "文件打开失败!" << endl;
fi.close();
return 0;
}
/*
istream ostream
| \ / |
ifstream iostream ofstream
|
fstream
*/
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
char ch[6];
cout << "Input a line: ";
ch[5] = cin.peek();
cout << "Peek first char: " << ch[5] << endl;
cin.get(ch[4]);
cout << "Read first char: " << ch[4] << endl;
cin.putback(ch[4]);
cin.getline(ch, 5);
if(!cin)
{
cout << "Input error!!!" << endl;
cin.clear();
cin.ignore(100, '\n');
}
else
cout << ch << endl;
cout << left << hex << showbase << uppercase << 1234 << endl;
cout << scientific << uppercase << left << 0.00123456 << endl;
cout.fill('*');
cout.width(8);
cout.unsetf(ios::dec | ios::oct);
cout.setf(ios::hex | ios::showbase | ios::uppercase | ios::left);
cout << 1234 << endl;
cout.setf(ios::dec);
ofstream fout("data.txt"); //使用fstream fio("data.txt", ios::in | ios::out);既可读又可写。
if(!fout.fail())
{
fout << "3.14159\t64I love C++" << endl;
fout.put('M');
fout.put('\n');
double d = 0.0123456789;
fout.precision(4);
fout.setf(ios::fixed);
// fout.setf(ios::scientific | ios::uppercase);
fout << d << endl;
fout.seekp(3, ios::cur); //读使用seekg(),与seekp()类似。
fout << '*' << flush;
fout.seekp(3, ios::cur);
fout << endl;
fout.seekp(2, ios::cur);
fout << '@' << ' ' << '*' << ' ' << '@' << endl;
fout.seekp(2, ios::cur);
streampos j = fout.tellp();
while((fout.tellp()-j) < 5)
fout << '*' << flush;
cout << "文件写入成功!" << endl;
}
else
cout << "文件打开失败!" << endl;
fout.close();
ifstream fin;
fin.open("data.txt", ios::in); //类似可以如fout那样定义
if(!fin.fail())
{
double d;
char ch[20] = {0};
string str;
fin >> d;
cout << d << endl;
fin.get(ch[0]);
for(int i=0; i<2; i++)
{
fin.get(ch[i]);
}
cout << ch << endl;
while(!fin.eof())
{
fin.getline(ch, 20, '\n');
cout << ch << endl;
}
}
else
cout << "文件打开失败!" << endl;
fin.close();
ofstream fo;
fo.open("bin.bin", ios::binary|ios::app);
if(!fo.fail())
{
int a[10];
for(int i=0; i<10; i++)
a[i] = i;
fo.write((char *)a, sizeof(a));
}
else
cout << "文件打开失败!" << endl;
fo.close();
ifstream fi;
fi.open("bin.bin", ios::binary|ios::in);
if(!fi.fail())
{
int a[10];
fi.read((char *)a, sizeof(a));
fi.close();
for(int i=0; i<10; i++)
cout << a[i];
cout << endl;
}
else
cout << "文件打开失败!" << endl;
fi.close();
return 0;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询