用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
展开
 我来答
百度网友8d94651
推荐于2016-11-04 · TA获得超过168个赞
知道小有建树答主
回答量:123
采纳率:0%
帮助的人:102万
展开全部
//这个是我学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;
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式